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:
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:
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.
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.
3 Comentários:
Mas quem foi o herói que mexeu nas permissões do /tmp ???
:-P
By Unknown, at 14/01/2008, 11:42
vai saber neh...
By 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 Anônimo, at 28/05/2009, 04:14
Postar um comentário
<< Home