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
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.
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
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.
Tags mysql connection authorization