Não é possível conectar-se ao servidor MySQL local por meio do soquete '/var/run/mysqld/mysqld.sock' (2)

9

Eu tenho o servidor de email configurado usando dovecot + postfix + mysql e ele estava funcionando bem no servidor (Ubuntu Server). Mas durante a semana passada parou de funcionar corretamente. Não envia email. Quando eu tento telnet localhost smtp estou conectando com sucesso, mas quando eu faço mail from:<[email protected]> e aperte Enter ele trava, nada acontece.

Tendo analisado o arquivo /var/log/mail.log eu descobri que provavelmente (99%) o problema está no postfix quando ele está tentando se conectar ao servidor MySQL. Se você vir o arquivo de registro abaixo, verá que ele diz Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) .

Nov 14 21:54:36 ns1 dovecot: dovecot: Killed with signal 15 (by pid=7731 uid=0 code=kill)
Nov 14 21:54:36 ns1 dovecot: Dovecot v1.2.9 starting up (core dumps disabled)
Nov 14 21:54:36 ns1 dovecot: auth-worker(default): mysql: Connected to localhost (mailserver)
Nov 14 21:54:44 ns1 postfix/postfix-script[7753]: refreshing the Postfix mail system
Nov 14 21:54:44 ns1 postfix/master[1670]: reload -- version 2.7.0, configuration /etc/postfix
Nov 14 21:54:52 ns1 postfix/trivial-rewrite[7759]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Nov 14 21:54:52 ns1 postfix/trivial-rewrite[7759]: fatal: mysql:/etc/postfix/mysql-virtual-alias-maps.cf(0,lock|fold_fix): table lookup problem
Nov 14 21:54:53 ns1 postfix/master[1670]: warning: process /usr/lib/postfix/trivial-rewrite pid 7759 exit status 1
Nov 14 21:54:53 ns1 postfix/cleanup[7397]: warning: problem talking to service rewrite: Connection reset by peer
Nov 14 21:54:53 ns1 postfix/master[1670]: warning: /usr/lib/postfix/trivial-rewrite: bad command startup -- throttling
Nov 14 21:54:53 ns1 postfix/smtpd[7071]: warning: problem talking to service rewrite: Success

Eu tentei netstat -ln | grep mysql e ele retorna

unix 2 [ ACC ] STREAM LISTENING 5817 /var/run/mysqld/mysqld.sock .

O conteúdo do arquivo /etc/postfix/mysql-virtual-alias-maps.cf está aqui:

user = stevejobs
password = apple
hosts = localhost
dbname = mailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'

Aqui tentei alterar o hosts = 127.0.0.1 , mas ele diz warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (110)

Então, estou perdido e não sei mais onde mudar para resolver o problema. Qualquer ajuda seria muito apreciada.

Obrigado.

EDIT 1

Quando eu faço netstat -na vejo que o mysql não é ligado nem ao localhost nem ao 127.0.0.1. Poderia ser o problema também?

bakhtiyor@ns1:~$ netstat -na | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN   
    
por Bakhtiyor 14.11.2011 / 18:30

5 respostas

6

Parece muito estúpido, mas resolvi o problema. Eu não tinha notado que um administrador de sistema de alguma forma bloqueava a porta 3306 para todos os hosts no firewall e, portanto, eu não conseguia me conectar ao mysql. Depois de remover essa restrição, consegui me conectar ao mysql sem problemas. Obrigado por suas sugestões e ajuda.

    
por Bakhtiyor 02.02.2012 / 07:23
3

Eu tive um problema semelhante. Mudando "hosts = localhost" para "hosts = 127.0.0.1" e definindo bind-address para o mesmo endereço fixo para mim (bind-address foi definido em 0.0.0.0 por algum motivo)

    
por Jussi Timonen 30.01.2012 / 09:28
3

Você já tentou se conectar ao servidor Mysql?

mysql -u username -p

Além disso, você pode tentar alterar o endereço de escuta em /etc/mysql/my.cnf para 127.0.0.1 e reiniciar o MySQL

# /etc/mysql/my.cnf
bind-address = 127.0.0.1
    
por Salem 14.11.2011 / 20:26
2

Eu estava recebendo o mesmo erro em um dos computadores da empresa.

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Eu também estava recebendo muito este erro quando tentei executar programas do X-windows através do ssh:

GConf Error: Failed to contact configuration server; 
some possible causes are that you need to enable TCP/IP networking for ORBit,
or you have stale NFS locks due to a system crash

Acontece que eu tinha um sistema de arquivos raiz que estava completamente preenchido, sem espaço livre em disco, então meu sistema não pôde gravar muitos arquivos necessários. Eu estava recebendo todos os tipos de erros, relacionados a muitos programas diferentes. (Não foi possível fazer login através do GDM, o papel de parede do GDM ficou preto, erros no arquivo de bloqueio do gconf, etc ...)

Tudo o que fiz foi digitar este comando simples para eliminar mais de 400 MB de arquivos na partição raiz que não eram mais necessários.

sudo apt-get autoremove

Isso deu ao meu sistema de arquivos raiz o espaço para respirar necessário. Agora tudo corre bem. Acho que um diretório raiz de 10 GB não é suficiente para lidar com mais de dois anos de atualizações do Ubuntu.

Se alguém se importa, o sistema está executando o Ubuntu 10.04 desde que foi lançado. O sistema é atualizado pelo menos uma vez por semana. A data de hoje é de 9 a 6 de 2012, ou seja, quase 2 anos e meio de atualizações.

    
por Happy Gecko 06.09.2012 / 08:46
1

O que finalmente me ajudou foi limpar (não remover!) todos os pacotes do apt-get relacionados ao mysql, exceto o libmysqlclient16 que estava no estado de desinstalação (não sei o que é isso).

Então, faça:

dpkg --get-selections | grep mysql

e depois:

sudo apt-get purge <package_name>

Comece do comum e vá para o cliente e depois para o servidor.

    
por Gilad Shahrabani 05.05.2012 / 16:02