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.