mysqld recusando conexões de localhost

1

Meu servidor de e-mail (Ubuntu 10.04) usa o mysql para domínios virtuais, usuários virtuais. Por alguma razão, o mysqld começou a recusar conexões do localhost. Eu vejo isso no log do servidor de email:

Oct 6 00:31:14 apollo postfix/trivial-rewrite[16888]: fatal:
proxy:mysql:/etc/postfix/mysql-virtual_domains.cf(0,lock|fold_fix): table
lookup problem

e:

Oct 7 13:39:15 apollo postfix/proxymap[25839]: warning: connect to mysql server
127.0.0.1: Lost connection to MySQL server at 'reading initial communication
packet', system error: 0

Eu também recebo o seguinte no auth.log:

Oct 6 22:33:31 apollo mysqld[31775]: refused connect from 127.0.0.1

Telnet para a porta local:

root@apollo:/var/log/mysql# telnet localhost 3306
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
root@apollo:/var/log/mysql#

Não sei por que isso começou a acontecer, mas houve uma falha no disco em um par RAID 1 um pouco mais cedo naquele dia. Então é possível que eu tenha um arquivo de configuração danificado ou algo assim. Mas o e-mail estava funcionando por pelo menos uma hora após o evento, por isso quem sabe com certeza?

O phpmyadmin funciona bem, e os próprios bancos de dados parecem estar intactos.

Eu acho / acredito que selinux e iptables estão desabilitados e não estão em execução. Então ... por que o mysqld está recusando conexões do localhost? O que devo verificar? Quais processos podem causar isso se um arquivo .conf ou possivelmente um binário foi danificado? Quais outros arquivos de log podem conter dicas? Eu habilitei "log geral" em /etc/mysql/my.cnf, mas não recebo entradas interessantes ou informativas.

Obrigado m00tpoint

    
por ThatGraemeGuy 07.10.2012 / 22:32

3 respostas

1

para começar a resolver o seu problema, experimente o comando netstat da seguinte forma:

# netstat -anp | egrep '3306.*LISTEN'
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      4118/mysqld         
# 

e / ou tente isto:

mysql --socket=/var/lib/mysql/mysql.sock

substitua /var/lib/mysql/mysql.sock pelo caminho apropriado para o seu arquivo mysql.sock .

também, desde que você disse que tem phpMyAdmin em execução, por que não procura em config.inc.php e veja como ele está se conectando ao seu mysqld .

possivelmente que a ligação de seu mysqld esteja em uma interface IP específica e não em todos.

    
por 03.06.2014 / 19:19
0

Você verificou o arquivo de log real do mysql?

/var/lib/mysql/"your-server-name".err

Além disso, talvez você alcance o limite de max_connections. execute este comando para verificar:

show variables like 'max_connections';
show status like 'Max_used_connections';

se max_connections e Max_used_connections forem iguais do que você precisa aumentar max_connections

    
por 07.10.2012 / 22:49
0

Apesar do fato de que localhost é normalmente equivalente a 127.0.0.1 , no que diz respeito ao MySQL, as duas são entidades distintas.

A parte do log do Telnet que você incluiu mostra o Telnet tentando primeiro conectar-se pelo nome e falhar. Em seguida, tentou por endereço IP e conseguiu. Apesar do fato de que o Telnet relatou que estava conectado ao MySQL em localhost , a conta de usuário do MySQL aparentemente está configurada para 127.0.0.1 . Eu suspeito que as duas identidades foram alteradas em algum arquivo de configuração. Eu não sei postfix mas sugiro que você verifique sua configuração. Caso contrário, você poderia adicionar uma conta de usuário do MySQL para 27.0.0.1 .

    
por 08.10.2012 / 11:42

Tags