2012-01-05 13 views
19

Tengo un volcado MYSQL de una base de datos que estoy tratando de mover a un nuevo servidor db. Cuando intento importar mi volcado SQL, recibo el siguiente error:MySQL Error 2006 (HY000) en la línea 406: servidor MySQL se ha ido

MySQL Error 2006 (HY000) at line 406: MySQL server has gone away 

Googled el problema y la mayoría de la gente solucionado el problema cambiando el valor de wait_timeout. Sin embargo, mi valor actual se establece en 28800 (8 horas) y el error aparece en menos de 8 segundos cuando ejecuto la importación.

También intenté establecer el valor de max_allowed_packet en 1073741824 pero eso tampoco solucionó el problema.

Mirando a través del volcado de mysql, hay bastantes columnas de blobs en el volcado, pero el tamaño del archivo general es de solo 6 MB.

¿Alguien tiene alguna idea sobre qué otra cosa podría ser el problema?

+2

Como solución alternativa, volví al servidor de base de datos de origen y realicé varios archivos de volcado más pequeños (5 tablas a la vez). Luego, importé cada uno de los archivos de volcado más pequeños y esto me permitió realizar la transferencia de mi base de datos sin el mensaje de error. – David

Respuesta

6

El aumento de max_allowed_packet a 12 MB (12000000) me solucionó el problema al intentar importar un archivo de 130 MB.

Cambie el archivo ini o en Opciones de archivo/red en MySQL Workbench (se requiere reiniciar MySQL).

Si aún obtiene el error, intente aumentar aún más (100 MB). Solo recuerda disminuir cuando termines.

47

La adición de esta respuesta para el beneficio de los futuros buscadores, ya que explica por qué el aumento del tamaño del paquete solucionó el problema:

The situation is that if a client sends a SQL-statement longer than the server max_allowed_packet setting, the server will simply disconnect the client. Next query from the same client instance will find that the ‘MySQL server has gone away’.

... But it would of course be much preferable to have the ‘got packet bigger’ error [Error: 2020 (CR_NET_PACKET_TOO_LARGE)] returned if that is the problem.

Extraído de y gracias por peter_laursen's blog post

en OSX 10.7 (Lion), he creado un archivo, /etc/my.cnf con el siguiente contenido:

[mysqld] 
max_allowed_packet = 12000000 

y luego se detuvo t El servidor mysql:

/usr/local/bin/mysql.server stop 

Cuando se reinició automáticamente pude ejecutar mis inserciones.

+1

Bueno, tengo el mismo problema incluso para max_allowed_packet = 512M –

+1

@AbhijitBuchake - entonces es probable que no sea un problema de 'paquete demasiado grande', sino alguna otra razón para la desconexión. Lamentablemente, no tengo otras sugerencias para ti. –

+1

¡GRACIAS! He leído y probado más de una docena de escenarios. He vuelto a instalar mysql 3 veces. El truco anterior para el my.cnf lo arregla. Estaba intentando agregar una base de datos mysql de 50m en mysql a través de la línea de comandos. Eso totalmente hizo mi día! – user24793

0

1) Cambio en el archivo de configuración de MySQL: # /etc/mysql/my.cnf

#section 
# 
[mysqld] 
# 
key_buffer    = 32M 
max_allowed_packet  = 32M 
thread_stack   = 512K 
thread_cache_size  = 64 
# 

2) deamon MySql reinician

/etc/init.d/mysql restart 

debe resolver la suya cuestiones.

Cuestiones relacionadas