Siguen apareciendo errores de "El servidor MySQL ha desaparecido" durante la importación de la línea de comandos

Siguen apareciendo errores de "El servidor MySQL ha desaparecido" durante la importación de la línea de comandos

Estoy usando el siguiente comando para importar datos desde un archivo de 160 MB creado en otro servidor con mysqldump. El entorno al que estoy importando ejecuta el último servidor WAMP con max_allowed_packet configurado en "16M".

C:\wamp\bin\mysql\mysql5.1.36\bin>mysql --max_allowed_packet=15M -u root -pXXX drupal < C:\prod.sql

ERROR 2006 (HY000) at line 644: MySQL server has gone away

Esto parece suceder constantemente después de aproximadamente 39 segundos y 85,5 MB importados.

Leí muchas sugerencias sobre cómo aumentar max_allowed_packet en my.ini, así que lo hice a 16M en lugar del valor predeterminado de 1M. Sin embargo, el error que recibo persiste sin importar lo que haga. ¿Algunas ideas?

Ahora resuelto en my.ini:

[wampmysqld]
port        = 3306
socket      = /tmp/mysql.sock
key_buffer = 384M
max_allowed_packet = 100M
table_cache = 4096
sort_buffer_size = 2M
net_buffer_length = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 64M
myisam_sort_buffer_size = 64M
basedir=c:/wamp/bin/mysql/mysql5.1.36
log-error=c:/wamp/logs/mysql.log
datadir=c:/wamp/bin/mysql/mysql5.1.36/data
thread_cache_size = 8
query_cache_size = 32M

innodb_buffer_pool_size = 384M
innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 10M
innodb_log_buffer_size = 64M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 100

wait_timeout = 28800

[mysqldump]
quick
max_allowed_packet = 100M

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

Respuesta1

¿Cuál es la estructura de datos en SQL?

Es posible que una columna sea un blob, tal vez una imagen o un PDF de más de 16 millones. ¿Por qué no configurar max_allowed_packet en 160 MB (ya que ningún paquete puede ser mayor que el tamaño total del archivo) y probarlo nuevamente? Siempre puedes volver a cambiarlo más tarde.

Puede obtener un valor más preciso si importa los datos, use el comando MOSTRAR ESTADO DE LA TABLA para obtener los tamaños de los datos y luego verá qué tan grandes deben ser.

Sin embargo, el error es muy general y hay una lista de posibles razones por las que aparece el error.en el sitio web de mysql

Tendrá que revisar cada uno de ellos para localizar el problema, pero en mi experiencia siempre ha sido un paquete demasiado grande. Tengo max_packet_size configurado en 180 MB en una de mis cajas de producción por esta misma razón.

Respuesta2

Intente aumentar el tiempo de espera a 100 en su my.cnf y luego reinicie el servidor.

wait_timeout = 100

Respuesta3

Si bien la respuesta de Richard es la solución común, consulte su .errregistro. Es posible que MySQL se esté quedando sin memoria y se reinicie. También me ha sucedido esto recientemente con un hardware defectuoso.

información relacionada