El servidor MySQL se ha ido al importar archivos sql grandes


Intenté importar un archivo sql grande a través de phpMyAdmin...Pero siguió mostrando error

'El servidor MySQL se ha ido'

¿Qué hacer?

Author: hims056, 2012-09-14

17 answers

Como se indica aquí :

Dos razones más comunes (y correcciones) para el servidor MySQL ha desaparecido (error 2006) son:

El servidor se agotó y cerró la conexión. Cómo arreglar:

  1. Comprueba la variable wait_timeout en my de tu mysqld.el archivo de configuración cnf es lo suficientemente grande. En Debian: sudo nano /etc/mysql/my.cnf, establece wait_timeout = 600 segundos (puedes ajustar / disminuir este valor cuando el error 2006 se ha ido), entonces sudo /etc/init.d/mysql restart. No comprobé, pero el valor predeterminado para wait_timeout puede ser alrededor de 28800 segundos (8 horas).

  2. El servidor dejó caer un paquete incorrecto o demasiado grande. Si mysqld obtiene un paquete que es demasiado grande o incorrecto, asume que algo tiene salió mal con el cliente y cierra la conexión. Puede aumentar el límite máximo de tamaño del paquete aumentando el valor de max_allowed_packet en mi.archivo cnf. En Debian: sudo nano /etc/mysql/my.cnf, set max_allowed_packet = 64M (puede ajustar / disminuir este valor cuando el error 2006 se ha ido), entonces sudo /etc/init.d/mysql restart.

Editar: Observe que los archivos de opciones MySQL no tienen sus comandos ya disponibles como comentarios (como en php.ini, por ejemplo). Por lo tanto, debe escribir cualquier cambio/ajuste en my.cnf o my.ini y colocarlos en el directorio mysql/data o en cualquiera de las otras rutas, bajo el grupo adecuado de opciones como [client], [myslqd]...etc, por ejemplo :
[mysqld]
wait_timeout = 600
max_allowed_packet = 64M
A continuación, reinicie el servidor. Para obtener sus valores, escriba el consola:
select @@wait_timeout;
select @@max_allowed_packet;

 327
Author: GBD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-23 08:36:08

Para mí esta solución no funcionó, así que ejecuté

SET GLOBAL max_allowed_packet=1073741824;

En mi cliente SQL.

Si no puede cambiar esto con el servicio MySQL en ejecución, debe detener el servicio y cambiar la variable en "my.archivo ini".

Por ejemplo:

max_allowed_packet=20M
 81
Author: salsinga,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-14 19:57:32

Si se está ejecutando con valores predeterminados, entonces tiene mucho espacio para optimizar su configuración de mysql.

El primer paso que recomiendo es aumentar el max_allowed_packet a 128M.

A continuación, descargue el MySQL Tuning Primer script y ejecútelo. Proporcionará recomendaciones a varias facetas de su configuración para un mejor rendimiento.

También busque ajustar sus valores de tiempo de espera tanto en MySQL como en PHP.

Qué tamaño (tamaño del archivo) tiene el archivo que tiene importar y es capaz de importar el archivo utilizando el cliente de línea de comandos mysql en lugar de phpMyAdmin?

 17
Author: Daemon of Chaos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-14 13:24:46

Si usted está trabajando en XAMPP entonces usted puede fijar el servidor MySQL ha desaparecido problema con los siguientes cambios..

Abre tu mi.archivo ini mi.la ubicación del ini es (D:\xampp\mysql\bin\my.ini)

Cambie los siguientes valores de variable

max_allowed_packet = 64M
innodb_lock_wait_timeout = 500
 13
Author: Mohan Gathala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-30 09:42:14

Si está utilizando MAMP en OS X, tendrá que cambiar el valor max_allowed_packet en la plantilla para MySQL.

  1. Puede encontrarlo en: Archivo > Editar plantilla > MySQL my.cnf

  2. Entonces simplemente busque max_allowed_packet, cambie el valor y guardar.

Espero que esto ayude a alguien.

 7
Author: askthebigo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-19 12:28:25

Resolví mi problema con este corto /etc/mysql/my.archivo cnf:

[mysqld]
wait_timeout = 600
max_allowed_packet = 100M
 6
Author: Dan.faudemer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-18 07:52:46

La otra razón por la que esto puede suceder es quedarse sin memoria. Compruebe / var/log / messages y asegúrese de que su my.cnf no está configurado para hacer que mysqld asigne más memoria de la que tiene su máquina.

Su proceso mysqld puede ser asesinado por el núcleo y luego reiniciado por el proceso "safe_mysqld" sin que usted se dé cuenta.

Use top y observe la asignación de memoria mientras se ejecuta para ver cuál es su espacio libre.

Hacer una copia de seguridad de mi.cnf antes de cambiar se.

 5
Author: TekOps,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-30 06:25:12

Tuve este error y otros relacionados, cuando importé en el archivo SQL de 16 GB. Para mí, la edición de mi.ini y configurando lo siguiente (basado en varios posts diferentes) en la sección [mysqld]:

max_allowed_packet      = 110M
innodb_buffer_pool_size=511M
innodb_log_file_size=500M
innodb_log_buffer_size = 800M
net_read_timeout        = 600
net_write_timeout       = 600

Si se está ejecutando bajo Windows, vaya al panel de control, servicios, y mire los detalles de MySQL y verá dónde está mi.ini es. Luego, después de editar y guardar mi.ini, reinicie el servicio mysql (o reinicie el equipo).

Si está utilizando HeidiSQL, también puede establecer algunos o todos estos usando eso.

 5
Author: BenV136,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-18 19:09:33

Si sus datos incluyen BLOB datos:

Tenga en cuenta que una importación de datos desde la línea de comandos parece ahogarse en datos BLOB, lo que resulta en el error 'MySQL server has gone away'.

Para evitar esto, vuelva a crear el mysqldump pero con la bandera --hex-blob:

Http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_hex-blob

Que escribirá el archivo de datos con valores hexadecimales en lugar de binarios entre otros textos.

PhpMyAdmin también tiene la opción " Volcar columnas binarias en notación hexadecimal (por ejemplo, "abc" se convierte en 0x616263)" que funciona muy bien.

Tenga en cuenta que hay un error de larga data (a partir de diciembre de 2015) que significa que las columnas GEOM no se convierten: ¿Hacer una copia de seguridad de una tabla con una columna de GEOMETRÍA usando mysqldump? por lo tanto, usar un programa como phpMyAdmin parece ser la única solución (la opción mencionada anteriormente convierte correctamente las columnas de GEOM).

 2
Author: fooquency,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 10:31:34

He actualizado "max_allowed_packet" a 1024M, pero todavía no estaba funcionando. Resulta que mi script de implementación se estaba ejecutando:

mysql --max_allowed_packet=512M --database=mydb -u root < .\db\db.sql

Asegúrese de especificar explícitamente un número mayor desde la línea de comandos si lo hace de esta manera.

 1
Author: coderama,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-11 03:02:52

Si tarda mucho tiempo en fallar, amplíe la variable wait_timeout.

Si falla de inmediato, agrande la variable max_allowed_packet; si todavía no funciona, asegúrese de que el comando es SQL válido. El mío tenía citas no grabadas que arruinaron todo.

También, si es posible, considere limitar el número de inserciones de un solo comando SQL a, digamos, 1000. Puede crear un script que cree varias sentencias a partir de una sola reintroduciendo la INSERCIÓN... parte cada n inserciones.

 1
Author: emisilva,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-14 22:06:10

Tengo un error similar.. para resolver esto solo tienes que abrir mi.archivo ini..aquí en la línea no 36 cambiar el valor de tamaño de paquete máximo permitido ie. max_allowed_packet = 20M

 1
Author: parag jain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-27 13:36:42

Tuve un error similar hoy al duplicar la base de datos (MySQL server se ha ido...), pero cuando traté de reiniciar mysql.reinicio del servidor Tengo un error

ERROR! The server quit without updating PID ...

Así es como lo resolví: Abrí Aplicaciones / Utilidades / y ejecuté Monitor de actividad

 quit mysqld

Entonces fue capaz de resolver el problema de error con

mysql.server restart
 0
Author: Kingsley Ijomah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-29 19:24:09

Estoy haciendo algunos cálculos grandes que implican la conexión de mysql para permanecer mucho tiempo y con datos pesados. me enfrentaba a este "Mysql go away issue". Así que intenté t optimizar las consultas, pero eso no me ayudó entonces aumenté el límite de variables mysql que se establece en un valor más bajo por defecto.

Wait_timeout max_allowed_packet

Hasta el límite de lo que más le convenga debería ser el Número Cualquiera * 1024(Bytes). puede iniciar sesión en el terminal usando ' mysql-u username-p ' y puede comprobar y cambiar estos límites de variables.

 0
Author: Ashish Dev swami,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-21 08:25:04

Asegúrese de que el proceso mysqld no se reinicie debido a administradores de servicios como systemd.

Tuve este problema en vagrant con centos 7. Los ajustes de configuración no ayudaron. Resultó que fue systemd el que mató al servicio mysqld cada vez que tomaba demasiada memoria.

 0
Author: tvorog,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-28 12:26:21

Si aumentar max_allowed_packet no ayuda.

Estaba recibiendo el mismo error que usted al importar un archivo .sql en mi base de datos a través de Sequel Pro.

El error persistió después de subir el max_allowed_packet a 512M así que ejecuté la importación en la línea de comandos en su lugar con:

mysql --verbose -u root -p DatabaseName < MySQL.sql

Dio el siguiente error:

ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled

Encontré un par de preguntas útiles de StackOverflow:

En mi caso, mi archivo .sql estaba un poco dañado o algo así. El volcado de MySQL que obtenemos viene en dos archivos zip que deben concatenarse juntos y luego descomprimirse. Creo que la descompresión se interrumpió inicialmente, dejando el archivo con algunos caracteres y codificaciones extrañas. Conseguir un nuevo volcado de MySQL y descomprimirlo correctamente funcionó para mí.

Solo quería añadir esto aquí en caso de que otros encuentren que aumentar la variable max_allowed_packet no estaba ayudando.

 0
Author: Joshua Pinter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-19 23:03:30

Para el alojamiento compartido de GoDaddy

En las cuentas de alojamiento compartido de GoDaddy, es difícil modificar el PHP.archivos ini etc. Sin embargo, hay otra manera y simplemente funcionó perfectamente para mí. (Acabo de subir con éxito un 3.8 Mb .archivo de texto sql, que contiene 3100 filas y 145 cols. Usando el comando de IMPORTACIÓN en phpMyAdmin, estaba recibiendo el temido servidor MySQL se ha ido error, y no hay más información.)

Encontré que Matt Butcher tenía la respuesta correcta. Como Matt, tuve probé todo tipo de trucos, desde exportar bases de datos MySQL en trozos pequeños hasta escribir scripts que dividían las importaciones grandes en otras más pequeñas. Pero esto es lo que funcionó:

(1) CPANEL - - - > ARCHIVOS (grupo) - - - > COPIA DE SEGURIDAD

(2a) Bajo el encabezado" Copias de seguridad parciales"...
(2b) En "Descargar una copia de seguridad de base de datos MySQL"
(2c) Elija su base de datos y descargue una copia de seguridad (este paso es opcional, pero sabio)

(3a) Directamente a la derecha de 2b, bajo el encabezado "Restaurar una base de datos MySQL Copia de seguridad"
(3b) Elija el .Archivo de importación SQL desde su unidad local
(3c) La verdadera felicidad será tuya (en breve....) Mina tomó alrededor de 5 segundos

Pude usar este método para importar una sola tabla. Nada más en mi base de datos se vio afectado but pero eso es lo que el paso (2) anterior pretende proteger contra.

Notas:
a. Si no está seguro de cómo crear un .Archivo de importación SQL, utilice phpMyAdmin para exportar una tabla y modificar ese archivo estructura.

FUENTE: Matt Butcher 2010 Artículo

 -1
Author: gibberish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-06 03:04:02