SQLSTATE[HY000]: General error: 29 File ‘file.csv’ not found (Errcode: 13)

O que é o AppArmor

O AppArmor permite que o administrador do sistema para associar a cada programa um perfil de segurança que restringe os recursos do programa.

Verificando se o AppArmor realmente é o problema

Atualemnte o Ubuntu vem com o AppArmor ativado e o perfil do MySQL pode estar sendo executado em modo forçado por padrão. Você pode verificar isso executando o comando sudo aa-status da seguinte forma:

$ sudo aa-status
apparmor module is loaded.  
5 profiles are loaded.  
5 profiles are in enforce mode.  
   /sbin/dhclient
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/mysqld
   /usr/sbin/tcpdump
0 profiles are in complain mode.  
2 processes have profiles defined.  
2 processes are in enforce mode.  
   /sbin/dhclient (1088) 
   /usr/sbin/mysqld (26214) 
0 processes are in complain mode.  
0 processes are unconfined but have a profile defined.  

Se o mysqld está incluído no modo forçado, então provavelemente você acabou de encontrar o culpado por negar a acesso e/ou gravação. As entradas também seriam escritas em seu log quando o AppArmor bloqueia as gravações e/ou acessos.

Como alterar o perfil do MySql para aceitar o acesso/gravação

O que você pode fazer é editar /etc/apparmor.d/usr.sbin.mysqld e adicionar o path de onde o arquivo se encontra ou onde deverá ser exportado, por exemplo: /data/ e /data/* perto da parte inferior da seguinte forma:

sudo vi /etc/apparmor.d/usr.sbin.mysqld  
/usr/sbin/mysqld {
...
/var/log/mysql/ r,
/var/log/mysql/* rw,
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,
/data/ r,
/data/* rw,
}

Agora só resta reiniciar o AppArmor

$ sudo /etc/init.d/apparmor reload

Publicado por

adlerdias

Oi! Sou Adler Dias, 30, programador, trabalho com desenvolvimento de sistemas há 10 anos. Apaixonado pela minha namorada Alyne. Meu principal hobby é a corrida, já corri uma são silvestre e...

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax