Mysql
 sql >> Datenbank >  >> RDS >> Mysql

LOAD DATA INFILE Fehlercode:13

Ich weiß, dass dieser Beitrag alt ist, aber er taucht immer noch in den Suchergebnissen auf. Ich konnte die Lösung für dieses Problem online nicht finden, also habe ich es letztendlich selbst herausgefunden. Wenn Sie Ubuntu verwenden, gibt es ein Programm namens "Apparmor", das MySQL daran hindert, die Datei zu sehen. Folgendes müssen Sie tun, wenn Sie möchten, dass MySQL Dateien aus dem „tmp“-Verzeichnis lesen kann:

sudo vim /etc/apparmor.d/usr.sbin.mysqld

Sobald Sie sich in der Datei befinden, werden Sie eine Reihe von Verzeichnissen sehen, die MySQL verwenden kann. Fügen Sie die Zeile /tmp/** rwk hinzu in die Datei (ich bin mir nicht sicher, ob es wichtig ist, wo, aber hier ist ein Beispiel dafür, wo ich es abgelegt habe):

  /etc/mysql/*.pem r,

  /etc/mysql/conf.d/ r,

  /etc/mysql/conf.d/* r,

  /etc/mysql/*.cnf r,

  /usr/lib/mysql/plugin/ r,

  /usr/lib/mysql/plugin/*.so* mr,

  /usr/sbin/mysqld mr,

  /usr/share/mysql/** r,

  /var/log/mysql.log rw,

  /var/log/mysql.err rw,

  /var/lib/mysql/ r,

  /var/lib/mysql/** rwk,


  /tmp/** rwk,


  /var/log/mysql/ r,

  /var/log/mysql/* rw,

  /var/run/mysqld/mysqld.pid w,

  /var/run/mysqld/mysqld.sock w,

  /run/mysqld/mysqld.pid w,

  /run/mysqld/mysqld.sock w,

Jetzt müssen Sie Apparmor nur noch neu laden:

sudo /etc/init.d/apparmor reload

Beachten Sie, dass ich "vim" verwendet habe, aber ersetzen Sie das durch Ihren bevorzugten Texteditor, den Sie verwenden können.