tabla puedo pesados mayor importar grandes grande demasiado datos consola como archivos archivo 2mb mysql phpmyadmin

puedo - MySQL Server ha desaparecido al importar un archivo sql grande



importar tabla mysql consola (17)

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

''El servidor MySql se ha ido''

¿Qué hacer?


Para GoDaddy alojamiento compartido

En las cuentas de hosting compartido de GoDaddy, es difícil modificar los archivos PHP.ini, etc. Sin embargo, hay otra forma y funcionó perfectamente para mí. (Acabo de cargar con éxito un archivo de texto .sql de 3.8Mb, que contiene 3100 filas y 145 cols. Usando el comando IMPORT en phpMyAdmin, recibí el error del temido servidor MySQL , y no más información).

Encontré que Matt Butcher tenía la respuesta correcta. Al igual que Matt, probé todo tipo de trucos, desde exportar bases de datos MySQL en trozos pequeños hasta escribir guiones que dividen las importaciones en otras más pequeñas. Pero aquí está lo que funcionó:

(1) CPANEL ---> ARCHIVOS (grupo) ---> BACKUP

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

(3a) Directamente a la derecha de 2b, bajo el encabezado "Restaurar una copia de seguridad de la base de datos MySQL"
(3b) Elija el archivo de importación .SQL de su disco local
(3c) La verdadera felicidad será tuya (en breve ....) La mía tardó unos 5 segundos

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

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

FUENTE: Matt Butcher 2010 Artículo


Si aumentar max_allowed_packet no ayuda.

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

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

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 :

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 ser concatenados juntos y luego descomprimidos. Creo que la descompresión se interrumpió inicialmente, dejando el archivo con algunos caracteres extraños y codificaciones. Obtener un nuevo volcado de MySQL y descomprimirlo funcionó correctamente para mí.

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


Actualicé "max_allowed_packet" a 1024M, pero aún no funcionaba. 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 comando si lo está haciendo de esta manera.


Asegúrese de que el proceso mysqld no se reinicie debido a los 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 eliminó el servicio mysqld cada vez que requería demasiada memoria.


Como se indica here :

Las dos razones más comunes (y las correcciones) para el servidor MySQL han desaparecido (error 2006) son:

El servidor agotó el tiempo de espera y cerró la conexión. Como arreglar:

  1. compruebe que la variable wait_timeout en el archivo de configuración my.cnf de mysqld sea lo suficientemente grande. En Debian: sudo nano /etc/mysql/my.cnf , establezca wait_timeout = 600 segundos (puede modificar / disminuir este valor cuando el error 2006 se haya ido), luego sudo /etc/init.d/mysql restart . No verifiqué, pero el valor predeterminado para wait_timeout puede ser de unos 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 ha ido mal con el cliente y cierra la conexión. Puede aumentar el límite de tamaño máximo de paquete aumentando el valor de max_allowed_packet en el archivo my.cnf. En Debian: sudo nano /etc/mysql/my.cnf , configure max_allowed_packet = 64M (puede modificar / disminuir este valor cuando el error 2006 haya desaparecido), luego sudo /etc/init.d/mysql restart .

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


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

wait_timeout max_allowed_packet

Al límite de lo que más le convenga debe ser el Número Any * 1024 (Bytes). puede iniciar sesión en el terminal utilizando el comando '' mysql -u username - p '' y puede verificar y cambiar estos límites variables.


Hoy tuve un error similar al duplicar la base de datos (el servidor MySQL ha desaparecido ...), pero cuando intenté reiniciar el reinicio de mysql.server, recibí un error.

ERROR! The server quit without updating PID ...

Así lo resolví: abrí Aplicaciones / Utilidades / y ejecuté Activity Monitor

quit mysqld

Entonces fue capaz de resolver el problema de error con

mysql.server restart


La otra razón por la que esto puede suceder es quedarse sin memoria. Verifique / var / log / messages y asegúrese de que 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 eliminado por el núcleo y luego reiniciarse por el proceso "safe_mysqld" sin que usted se dé cuenta.

Use la parte superior y observe la asignación de memoria mientras se está ejecutando para ver cuál es su espacio para la cabeza.

Haga una copia de seguridad de my.cnf antes de cambiarlo.


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 el archivo "my.ini".

Por ejemplo:

max_allowed_packet=20M


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

[mysqld] wait_timeout = 600 max_allowed_packet = 100M


Si demora mucho tiempo, wait_timeout variable wait_timeout .

Si falla de inmediato, max_allowed_packet variable max_allowed_packet ; Si todavía no funciona, asegúrese de que el comando sea válido SQL. El mío tenía citas sin escaparse que arruinaron todo.

Además, si es factible, considere limitar el número de inserciones de un solo comando SQL a, digamos, 1000. Puede crear un script que cree múltiples declaraciones a partir de una sola reintroduciendo la parte INSERT ... cada cada n inserciones.


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

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

Luego descargue el script MySQL Tuning Primer 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é tan grande (tamaño de archivo) es el archivo que está importando y puede importar el archivo utilizando el cliente de línea de comandos mysql en lugar de PHPMyAdmin?


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

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

  2. Luego solo busque max_allowed_packet , cambie el valor y guarde.

Espero que esto ayude a alguien.


Tuve este error y otros relacionados, cuando importé a 16 GB de archivo SQL. Para mí, editar my.ini y configurar lo siguiente (basado en varias publicaciones 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 está ejecutando Windows, vaya al panel de control, servicios, mire los detalles de MySQL y verá dónde está my.ini. Luego, después de editar y guardar my.ini, reinicie el servicio mysql (o reinicie la computadora).

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


obtuve un error similar ... para resolver esto, simplemente abra el archivo my.ini ... allí, en la línea 36, ​​cambie el valor del tamaño máximo de paquete permitido, es decir. max_allowed_packet = 20M


Si está trabajando en XAMPP, entonces puede solucionar que el servidor MySQL haya desaparecido debido a los siguientes cambios.

abra su archivo my.ini la ubicación de my.ini es (D: / xampp / mysql / bin / my.ini)

cambiar los siguientes valores de variable

max_allowed_packet = 64M innodb_lock_wait_timeout = 500


Si sus datos incluyen datos BLOB :

Tenga en cuenta que una importación de datos desde la línea de comandos parece ahogarse con los datos BLOB, lo que da como resultado el error "El servidor MySQL ha desaparecido".

Para evitar esto, vuelva a crear el mysqldump pero con el --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 bien.

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