¿Qué significa MySQL Error 2013?

14

Estoy ejecutando mysqldump en un servidor mysql en un cron (como copia de seguridad) y recibo mensajes de advertencia como

mysqldump: Got error: 2013: Lost connection to MySQL server during query when doing refresh

¿Qué significa este error de MySQL (2013)? He buscado en Google y no es muy útil ...

Para el registro, mysqldump se conecta a un servidor esclavo MySQL, solía funcionar cuando se conectaba a un maestro.

Rory
fuente

Respuestas:

4

Esto podría ser muy malo, 2013significa que el hilo que da servicio al mysqldumpproceso ha muerto. Esto podría deberse a que el motor InnoDB en el servidor ha detectado un error al leer el archivo de base de datos para su base de datos. Como mysqldumptiene que leer todas las páginas de toda su base de datos para hacer la copia de seguridad, es probable que desencadene cualquier corrupción latente que su aplicación pueda evitar durante su actividad diaria.

Si ejecuta su mysqlcomando e informa que su ID de conexión es un número bajo, entonces su servidor probablemente se haya reiniciado. Debe verificar su mysqld.loginmediatamente para averiguar por qué.

Dave Cheney
fuente
gracias por aceptar mi respuesta, ¿qué encontraste en tu mysqld.log?
Dave Cheney
Vi la identificación de conexión baja, lo que significa que el servidor se reinició. No estoy seguro de por qué todavía. ¿Cómo puedo comprobar si hay 'corrupción latente
Rory
1
Si su servidor mysql se ha reiniciado, habrá un gran (leer páginas de depuración) en el registro de mysql.
Dave Cheney
11

2013 significa que la conexión al servidor se fue. Hay varias posibilidades disponibles:

  1. Alguien KILLed la consulta
  2. Los problemas de red provocaron la muerte de la conexión
  3. El servidor se bloqueó / murió
  4. Su conexión estaba inactiva wait_timeouty fue asesinada
  5. El cliente no estaba obteniendo datos lo suficientemente rápido net_wait_timeouty fue asesinado
brian-brasil
fuente
1
¿Es net_write_timeout o net_wait_timeout ?
ks1322
también net_read_timeout= 600 y connect_timeout= 60
0

¿abres la conexión, haces una operación larga que no involucra la conexión y luego intentas la consulta? si ese es el caso, mysql probablemente perdió la conexión debido a wait_timeout. simplemente vuelva a conectarse antes de emitir la consulta.


fuente