MAL - Memória Auxiliar do Lutieri

segunda-feira, janeiro 14, 2008

Mysql 5: Bind on unix socket: Permission denied

Tem alguns momentos da vida que eu acho que o cara não consegue raciocinar direito. Se bem que voltei de férias hoje pela manhã depois de quase 30 dias longe dos meus queridos servidores. Tomara que esse seja o motivo pra mim achar a solução, pra essa mensagem de erro do título, depois de uma hora e tanto.

Fui colocar algumas coisas em dia. Isso inclui um server novo que tinha que ter mysql. Pois bem, eis que quando tento iniciar o server mysql tenho isso:

/usr/local/etc/rc.d/mysql-server start ; tail -f /var/db/mysql/host.xyz.com.br.err


080114 10:28:56 mysqld started
080114 10:28:56 InnoDB: Started; log sequence number 0 43655
080114 10:28:56 [ERROR] Can't start server : Bind on unix socket: Permission denied
080114 10:28:56 [ERROR] Do you already have another mysqld server running on socket: /tmp/mysql.sock ?
080114 10:28:56 [ERROR] Aborting

080114 10:28:56 InnoDB: Starting shutdown...
080114 10:28:58 InnoDB: Shutdown completed; log sequence number 0 43655
080114 10:28:58 [Note] /usr/local/libexec/mysqld: Shutdown complete

080114 10:28:58 mysqld ended

Olhando agora é a coisa mais simples do mundo. Mas sei lá porque cargas d'água eu não me dei conta da solução antes e fui pelo caminho mais difícil.

Primeiro recompilei o mysql com a opção --with-debug. Agora quando rodo:


# /usr/local/libexec/mysqld --help


Me retorna:

/usr/local/libexec/mysqld Ver 5.0.51-debug for portbld-freebsd6.2 on amd64 (FreeBSD port: mysql-server-5.0.51)


O que significa que posso rodar o seguinte comando para debugar o servidor mysql:

/usr/local/libexec/mysqld --debug --user=mysql


Que vai criar um arquivo /tmp/mysqld.trace contendo o debug da inicialização do servidor. Se bem que não encontrei nada de muito interessante dentro dele.

Foi aí então que resolvi pensar um pouquinho só antes de seguir fazendo coisas. Pensei cá com os meus botõezinhos: "Parece não ter permissão pra criar o socket. Porém é no diretório /tmp".
Acho que por ser nesse diretório que eu descartei qualquer possibilidade de permissão e segui por outro caminho. Mas como eu já tinha chegado no fim desse caminho e não havia encontrado nada, resolvi voltar ao início.

As permissões do /tmp estavam assim:


drwxr-xr-x 7 root wheel 512 Jan 14 11:12 tmp


Estranho. Mas.. mudei pra ficar assim:

chmod 777 /tmp/

Mais informações sobre debug no Mysql. Aqui.
tcharã!! Pronto. Da próxima vez eu verifico o lógico primeiro.

Marcadores: ,

3 Comentários:

  • Mas quem foi o herói que mexeu nas permissões do /tmp ???

    :-P

    By Blogger Unknown, at 14/01/2008, 11:42  

  • vai saber neh...

    By Blogger Lutieri G. B., at 14/01/2008, 20:41  

  • Aconteceu comigo ao atualizar a versão do MySQL 5.0.x para 5.1.x no FreeBSD 6.x.

    Agora, quem mexeu nas permissões do /tmp/ durante o portupgrade continua sendo um mistério.

    Passei horas me escabelando até encontrar o seu post.

    Muito obrigado!

    By Anonymous Anônimo, at 28/05/2009, 04:14  

Postar um comentário

<< Home



Chat with Lutieri G. B.

Subscribe in a reader