Heim > Datenbank > MySQL-Tutorial > Warum wählt MySQL in Outfile trotz korrekter Dateiberechtigungen aus?

Warum wählt MySQL in Outfile trotz korrekter Dateiberechtigungen aus?

Barbara Streisand
Freigeben: 2025-01-24 15:07:13
Original
554 Leute haben es durchsucht

Why Does MySQL SELECT INTO OUTFILE Fail with Errcode 13 Despite Correct File Permissions?

Fehlerbehebung bei MySQLs SELECT INTO OUTFILE-Fehlercode 13: Über grundlegende Berechtigungen hinaus

Die Verwendung von SELECT INTO OUTFILE zum Exportieren von MySQL-Daten in eine CSV-Datei kann durch Errcode 13, einen Berechtigungsfehler, vereitelt werden. Während unzureichende Dateiberechtigungen die übliche Ursache sind, bleibt das Problem auch bei korrekten Verzeichnisberechtigungen bestehen, was häufig auf die Sicherheitsmaßnahmen von AppArmor in modernen Ubuntu-Serverversionen zurückzuführen ist.

Die Rolle von AppArmor bei MySQL-Berechtigungen

AppArmor, ein Linux-Sicherheitsmodul, beschränkt den Anwendungszugriff auf Systemressourcen. Wenn MySQL unter einem AppArmor-Profil ausgeführt wird (überprüfen Sie es mit sudo aa-status; suchen Sie nach „/usr/sbin/mysqld“ unter „Profile im Erzwingungsmodus“), ist sein Schreibzugriff möglicherweise eingeschränkt.

Beheben des Problems: Gewähren des AppArmor-Zugriffs

So erlauben Sie MySQL, an bestimmte Speicherorte zu schreiben:

  1. Bearbeiten Sie das AppArmor-Profil:Öffnen Sie /etc/apparmor.d/usr.sbin.mysqld zur Bearbeitung.

  2. Schreibberechtigungen hinzufügen:Zeilen hinzufügen, die Lese-/Schreibzugriff auf das Zielverzeichnis gewähren. Zum Beispiel:

<code>/usr/sbin/mysqld {
    ...
    /data/ r,
    /data/* rw,
}</code>
Nach dem Login kopieren

Dadurch kann MySQL aus /data und seinen Unterverzeichnissen lesen und schreiben.

  1. AppArmor neu laden:Ausführen sudo /etc/init.d/apparmor reload, um die Änderungen zu übernehmen.

  2. MySQL neu starten: Starten Sie den MySQL-Dienst neu. Wiederholen Sie Ihren SELECT INTO OUTFILE-Befehl.

Wichtiger Sicherheitshinweis: Berücksichtigen Sie sorgfältig die Auswirkungen der Gewährung von Schreibzugriff auf MySQL über AppArmor. Gewähren Sie nur Zugriff auf absolut notwendige Verzeichnisse, um Sicherheitsrisiken zu minimieren.

Das obige ist der detaillierte Inhalt vonWarum wählt MySQL in Outfile trotz korrekter Dateiberechtigungen aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage