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.
fuente
Respuestas:
Al revisar todos los detalles del error y los informes, sospecho que hay un problema del lado de la red o del cliente aquí. Algo está corrompiendo o agregando demasiada latencia a los datos de mysql.
En una red clara, haga un seguimiento de wirehark y verifique cómo es la conversación. Asegúrese de que no se forme tráfico en ningún lado. Parece un problema de 64 bits solo, así que verifique una compilación de 32 bits solo para asegurarse de que sea el mismo problema. Verifique en un cuadro de Windows XP: ¡M $ hizo algunas cosas funky en la pila de red en Vista que hizo que apestara un poco de tiempo! ¡No tenemos fin de problemas de red con máquinas Vista y Win7!
Si logras un rastro de Wirehark, por favor pega y pon el enlace como a todos nos gustaría ver, creo.
fuente
Al final, esto se debió a un problema general de red en la máquina. La solución se encontró en: Problemas de rendimiento de red en Windows 7
fuente