Heim >Datenbank >MySQL-Tutorial >Warum kann MySQL bei Verwendung von LOAD DATA INFILE nicht auf meine Datei zugreifen?

Warum kann MySQL bei Verwendung von LOAD DATA INFILE nicht auf meine Datei zugreifen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 20:21:02631Durchsuche

Why Can't MySQL Access My File When Using LOAD DATA INFILE?

LOAD DATA INFILE-Fehlercode: 13

Beim Versuch, Daten mit dem Befehl LOAD DATA INFILE auf einem Remote-Server in eine MySQL-Tabelle zu laden , kann es zu Fehlercode 13 kommen: „Statistik von ‚/httpdocs/.../.../testFile.csv‘ kann nicht abgerufen werden (Fehlercode: 2)“. Dies weist darauf hin, dass MySQL nicht auf die angegebene Datei zugreifen kann.

Die folgenden Schritte können zur Lösung dieses Problems beitragen:

1. Ausreichende Berechtigungen gewähren

Stellen Sie sicher, dass der Datenbankbenutzer über ausreichende Berechtigungen für den Zugriff auf die Datei verfügt. Erwägen Sie, dem Benutzer die Berechtigungen SELECT, FILE und LOAD DATA zu erteilen:

GRANT SELECT, FILE, LOAD DATA ON *.* TO 'userName'@'%'

2. Datei- und Ordnerberechtigungen festlegen

Stellen Sie sicher, dass die Datei- und Ordnerberechtigungen MySQL das Lesen der Datei ermöglichen. Setzen Sie die Dateiberechtigungen auf 644 (rw-r--r--) und die Ordnerberechtigungen auf 755 (rwxr-xr-x):

<code class="bash">chmod 644 /httpdocs/.../.../testFile.csv
chmod 755 /httpdocs/.../.../</code>

3. Überprüfen Sie die Apparmor-Einstellungen

Auf Ubuntu-Systemen kann Apparmor den Zugriff von MySQL auf Dateien einschränken. Damit MySQL Dateien aus dem Verzeichnis „tmp“ lesen kann, fügen Sie die folgende Zeile zu /etc/apparmor.d/usr.sbin.mysqld hinzu:

/tmp/** rwk

Apparmor neu laden mit:

<code class="bash">sudo /etc/init.d/apparmor reload</code>

4. Deaktivieren Sie SELinux

Wenn Sie SELinux (Security-Enhanced Linux) verwenden, kann es auch den Dateizugriff einschränken. Versuchen Sie, es vorübergehend zu deaktivieren und den Befehl LOAD DATA INFILE erneut auszuführen. Spezifische Anweisungen finden Sie in Ihrer SELinux-Dokumentation.

Zusätzliche Hinweise:

  • Stellen Sie sicher, dass der in der LOAD DATA INFILE-Anweisung angegebene Dateipfad korrekt und für MySQL zugänglich ist .
  • Erwägen Sie stattdessen die Verwendung eines Datenimporttools wie mysqlimport oder mysql.connector, um Daten zu importieren.

Das obige ist der detaillierte Inhalt vonWarum kann MySQL bei Verwendung von LOAD DATA INFILE nicht auf meine Datei zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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