Mysql
 sql >> Database >  >> RDS >> Mysql

LOAD DATA INFILE Codice di errore:13

So che questo post è vecchio, ma compare ancora nei risultati di ricerca. Non riuscivo a trovare la soluzione a questo problema online, quindi ho finito per capirlo da solo. Se stai usando Ubuntu, c'è un programma chiamato "Apparmor" che impedisce a MySQL di vedere il file. Ecco cosa devi fare se vuoi che MySQL sia in grado di leggere i file dalla directory "tmp":

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

Una volta che sei nel file, vedrai un sacco di directory che MySQL può usare. Aggiungi la riga /tmp/** rwk al file (non sono sicuro che importi dove, ma ecco un esempio di dove l'ho messo):

  /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,

Ora tutto ciò che devi fare è ricaricare Apparmor:

sudo /etc/init.d/apparmor reload

Nota che ho usato "vim", ma sostituiscilo con qualunque sia il tuo editor di testo preferito che sai come usare.