Meu aplicativo precisa se conectar com bastante frequência a um banco de dados mysql em outra máquina. No entanto, recebo erros frequentes na conexão; Geralmente, eu posso me conectar, mas após várias 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: http://dev.mysql.com/doc/refman/5.0/en/error-lost-connection.html e também os comentários ao bug http://bugs.mysql.com/bug .php? id = 28359 .
Existem várias conexões abortadas, como você pode ver:
mysql> MOSTRA ESTADO GLOBAL COMO 'Aborted_connects'; + ------------------ + ------- + | Nome da variável | Valor + ------------------ + ------- + | Conexões abortadas | 2540 + ------------------ + ------- +
Aumentei o tempo limite de 5 para 15 s:
mysql> mostra variáveis como 'connect_timeout'; + ----------------- + ------- + | Nome da variável | Valor + ----------------- + ------- + | connect_timeout | 15 + ----------------- + ------- +
mas isso não ajudou. Alguma sugestão de como depurar isso? Isso torna a interação do banco de dados terrivelmente lenta quando, em média, ele tenta se conectar 5 vezes antes de funcionar.
Ainda não tentei manter a conexão aberta durante toda a vida útil do aplicativo, isso seria melhor? Como evito que a conexão seja fechada?
Se isso ajudar o computador com os problemas é o Windows 7 de 32 bits, enquanto o servidor mysql está no Debian Linux.
fonte
Respostas:
Examinando todos os detalhes de erros e relatórios, suspeito que haja um problema na rede ou no cliente aqui. Algo está corrompendo ou adicionando muita latência aos dados do mysql.
Em uma rede limpa, faça um rastreamento do wireshark e verifique como é a conversa. Garanta que nenhuma configuração de tráfego esteja ocorrendo em qualquer lugar. Parece apenas um problema de 64 bits, portanto verifique uma compilação de 32 bits apenas para garantir que seja o mesmo problema. Verifique em uma caixa do Windows XP - o M $ fez algumas coisas estranhas na pilha de rede do Vista, o que fez com que isso fosse um pouco demorado! Não temos fim de problemas de rede com máquinas Vista e Win7!
Se você gerencia um rastreio do wireshark, cole obin e coloque o link como todos nós gostaríamos de ver.
fonte
No final, isso se deveu a um problema geral de rede na máquina. A solução foi encontrada em: Problemas de desempenho de rede no Windows 7
fonte