mysqld dá errcode: 13 porque não pode criar arquivos de teste

6

Nova instalação do 11.04. Então eu segui todas as instruções aqui: link

Agora, quando eu executo o mysqld, recebo este erro:

makara@rahu:~$ mysqld
111103 13:39:37 [Warning] Can't create test file /var/lib/mysql/rahu.lower-test
111103 13:39:37 [Warning] Can't create test file /var/lib/mysql/rahu.lower-test
mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13)
111103 13:39:37 [ERROR] Aborting
111103 13:39:37 [Note] mysqld: Shutdown complete

Alguém no IRC disse que pode ser uma questão de pacote ??

Obrigado beterraba

    
por caduceus 03.11.2011 / 10:23

2 respostas

4

O mysqld deve ser executado como o usuário mysql. Você não deve executar o daemon manualmente. É melhor começar como um serviço como este:

sudo service mysql start

A mensagem de erro indica que o serviço mysql não pode acessar certos arquivos que não devem ser acessados no ambiente do usuário. Portanto, esse comportamento deve estar correto. No entanto, você deve verificar se os diretórios existem e quem os possui e quem tem acesso a eles (use ls -la para esse propósito):

ls -la  /var/lib/
ls -la  /var/lib/mysql
    
por Michael K 03.11.2011 / 10:42
5

Eu me deparei com o mesmo problema, após a atualização do Oneiric para o Precise, que atualiza o MySQL de 5.1 para 5.5.

No meu caso, o problema era que

/etc/apparmor.d/local/usr.sbin.mysqld

estava faltando, embora tenha sido incluído em

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

por padrão. Um simples

sudo touch /etc/apparmor.d/local/usr.sbin.mysqld

resolveu o problema para mim.

Para aqueles que procuram: o arquivo de log que contém as informações interessantes é / var / log / upstart / mysql. Não haverá nada em / var / log / mysql (* | / *)

O que você vê pode incluir:

  • sudo service mysql start resulta em

    início: o trabalho falhou ao iniciar

  • A tentativa manual de iniciar mysqld como um usuário comum falhará normalmente (antes do problema acima), porque o usuário não tem acesso ao / var / lib / mysql (isso pode ser encontrado no syslog).

  • Iniciar o mysqld como root será bem-sucedido (não sei por que)

por Confusion 28.04.2012 / 16:39

Tags