Mi aplicación necesita hacer conexiones bastante frecuentes a una base de datos mysql en otra máquina. Sin embargo, recibo errores frecuentes en la conexión; Por lo general, finalmente puedo conectarme, pero después de muchos intentos. El mensaje de error que recibo es:
Mysql.mysql(): Couldn't connect to SQL-server: Lost connection to MySQL server at 'reading authorization packet', system error: 2
He leído la información aquí: http://dev.mysql.com/doc/refman/5.0/en/error-lost-connection.html y también los comentarios al error http://bugs.mysql.com/bug .php? id = 28359 .
Hay bastantes conexiones abortadas como puede ver:
mysql> MOSTRAR ESTADO GLOBAL COMO 'Aborted_connects'; + ------------------ + ------- + El | Nombre_variable | Valor | + ------------------ + ------- + El | Conexiones abortadas | 2540 | + ------------------ + ------- +
Aumenté el tiempo de espera de 5 a 15 segundos:
mysql> muestra variables como 'connect_timeout'; + ----------------- + ------- + El | Nombre_variable | Valor | + ----------------- + ------- + El | connect_timeout | 15 | + ----------------- + ------- +
Pero esto no ha ayudado. ¿Alguna sugerencia de cómo depurar esto? Hace que la interacción de la base de datos sea terriblemente lenta cuando, en promedio, tiene que intentar conectarse 5 veces antes de que funcione.
Todavía no he tratado de mantener la conexión abierta durante toda la vida de la aplicación, ¿sería mejor? ¿Cómo evito que se cierre la conexión?
Si ayuda a la computadora con los problemas es Windows 7 de 32 bits, mientras que el servidor mysql está en Debian Linux.