Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

LOAD DATA INFILE Código de erro:13


Eu sei que este post é antigo, mas isso ainda aparece nos resultados da pesquisa. Não consegui encontrar a solução para esse problema online, então acabei descobrindo sozinho. Se você estiver usando o Ubuntu, existe um programa chamado "Apparmor" que está impedindo o MySQL de ver o arquivo. Aqui está o que você precisa fazer se quiser que o MySQL possa ler arquivos do diretório "tmp":
sudo vim /etc/apparmor.d/usr.sbin.mysqld

Quando estiver no arquivo, você verá vários diretórios que o MySQL pode usar. Adicione a linha /tmp/** rwk para o arquivo (não tenho certeza se importa onde, mas aqui está uma amostra de onde eu coloquei):
  /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,

Agora tudo que você precisa fazer é recarregar o Apparmor:
sudo /etc/init.d/apparmor reload

Observe que usei "vim", mas substitua isso por qualquer editor de texto favorito que você saiba usar.