Erro de conexão ao banco de dados mysql

9

Meu aplicativo precisa fazer conexões bastante frequentes a um banco de dados mysql em outra máquina. No entanto, recebo erros freqüentes na conexão; Eu normalmente posso conectar-me, mas depois de muitas tentativas. A mensagem de erro que recebo é:

Mysql.mysql(): Couldn't connect to SQL-server: Lost connection to MySQL server at 'reading authorization packet', system error: 2

Eu li as informações aqui: link e também o comentários ao bug link .

Há um grande número de conexões interrompidas, como você pode ver:

mysql> SHOW GLOBAL STATUS LIKE 'Aborted_connects';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| Aborted_connects | 2540  | 
+------------------+-------+

Eu aumentei o tempo limite de 5 para 15 segundos:

mysql> show variables like 'connect_timeout';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| connect_timeout | 15    | 
+-----------------+-------+

mas isso não ajudou. Alguma sugestão como depurar isso? Isso faz com que a interação com o banco de dados fique muito lenta quando, em média, ele tenta se conectar 5 vezes antes de funcionar.

Eu ainda não tentei manter a conexão aberta durante a vida útil do aplicativo, seria melhor? Como evito que a conexão feche?

Se ajudar o computador com os problemas é o Windows 7 de 32 bits, enquanto o servidor mysql está no Debian Linux.

    
por Zitrax 19.10.2010 / 14:10

2 respostas

2

No final, isso se deveu a um problema geral de rede na máquina. A solução foi encontrada em: Problemas de desempenho da rede no Windows 7

    
por 01.12.2010 / 13:21
2

Examinando todos os detalhes do bug e relatórios, suspeito que exista problema de rede ou de cliente aqui. Algo está corrompendo ou adicionando muita latência aos dados do mysql.

Em uma rede limpa, faça um rastreamento wireshark e verifique como é a conversa. Assegure-se de que nenhuma modelagem de tráfego esteja acontecendo em lugar algum. Parece um problema de 64 bits, então verifique uma compilação de 32 bits apenas para garantir que é o mesmo problema. Verifique em uma caixa do Windows XP - M $ fez algumas coisas funky para a pilha de rede no Vista que fez suck-bit tempo! Não temos fim de problemas de rede com máquinas Vista e Win7!

Se você gerencia um rastreio wireshark, por favor, cole e coloque o link como todos nós gostaríamos de olhar, eu acho.

    
por 22.10.2010 / 13:50