Traté de importar un archivo sql grande a través de phpMyAdmin ... Pero seguía mostrando error
'El servidor MySql se ha ido'
¿Qué hacer?
mysql
phpmyadmin
FrancisMV123
fuente
fuente
max_allowed_packet
. Un poco crudo, pero si eso funciona, puede encontrar un valor razonable.Respuestas:
Como se indica aquí :
Editar:
Tenga en cuenta que los archivos de opciones de MySQL no tienen sus comandos ya disponibles como comentarios (como en php.ini, por ejemplo). Por lo que debe escribir cualquier cambio / pellizco en
my.cnf
omy.ini
y colocarlos enmysql/data
el directorio o en cualquiera de los otros caminos, en el grupo adecuado de opciones tales como[client]
,[myslqd]
, etc. Por ejemplo:Luego reinicie el servidor. Para obtener sus valores, escriba el cliente mysql:
fuente
SHOW VARIABLES
consulta MySQL) y el archivo que estaba importando tenía algunos registros muy grandes. Abrí el archivo my.ini (estaba ejecutando Windows) y establecí el valor en esto:max_allowed_packet = 64M
reinicié MySQL y volví a ejecutar la importación.wait_timeout
líneaPara mí esta solución no funcionó, así que ejecuté
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:
fuente
php.ini
archivo (como lo sugiere @GBD en la respuesta) como el archivo de configuración de MySQLmy.ini
para que funcione.SHOW variables LIKE 'max_allowed_packet'
max_allowed_packet
en un cliente y luego importar el.sql
archivo grande en otra sesión funcionará bien.Si está trabajando en XAMPP, puede solucionar el problema del servidor MySQL con 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 variables
fuente
Si está ejecutando con valores predeterminados, entonces tiene mucho espacio para optimizar su configuración mysql.
El primer paso que recomiendo es aumentar 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 importarlo usando el cliente de línea de comando mysql en lugar de PHPMyAdmin?
fuente
Si está utilizando MAMP en OS X, deberá cambiar el
max_allowed_packet
valor en la plantilla para MySQL.Puede encontrarlo en: Archivo> Editar plantilla> MySQL my.cnf
Luego solo busque
max_allowed_packet
, cambie el valor y guarde.fuente
Resolví mi problema con este breve archivo /etc/mysql/my.cnf:
fuente
[mysqld]
La otra razón por la que esto puede suceder es que se está quedando sin memoria. Verifique / var / log / messages y asegúrese de que su my.cnf no esté configurado para 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 reiniciado por el proceso "safe_mysqld" sin que se dé cuenta.
Use top y observe la asignación de memoria mientras se está ejecutando para ver cuál es su espacio libre.
haga una copia de seguridad de my.cnf antes de cambiarlo.
fuente
Tuve este error y otros relacionados cuando importé a un archivo SQL de 16 GB. Para mí, editando my.ini y configurando lo siguiente (basado en varias publicaciones diferentes) en la sección [mysqld]:
Si está ejecutando bajo Windows, vaya al panel de control, servicios y 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 utilizando eso.
fuente
Actualicé "max_allowed_packet" a 1024M, pero aún no funcionaba. Resulta que mi script de implementación se estaba ejecutando:
Asegúrese de especificar explícitamente un número mayor desde la línea de comando si lo está haciendo de esta manera.
fuente
Si sus datos incluyen
BLOB
datos: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 se ha ido'.
Para evitar esto, vuelva a crear mysqldump pero con la
--hex-blob
bandera: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 existe un error de larga data (a partir de diciembre de 2015) que significa que las
GEOM
columnas no se convierten: ¿ Realice una copia de seguridad de una tabla con una columna GEOMETRÍA utilizando mysqldump? por lo tanto, usar un programa como PhpMyAdmin parece ser la única solución (la opción indicada anteriormente convierte correctamente las columnas GEOM).fuente
Si tarda mucho en fallar, amplíe la
wait_timeout
variable.Si falla de inmediato, amplíe la
max_allowed_packet
variable; Si aún no funciona, asegúrese de que el comando sea SQL válido. La mía tenía citas sin escapes que arruinaban todo.Además, si es factible, considere limitar el número de inserciones de un solo comando SQL a, digamos, 1000. Puede crear una secuencia de comandos que cree múltiples declaraciones a partir de una sola reintroduciendo la parte INSERTAR ... cada n inserciones.
fuente
obtuve un error similar ... para resolver esto simplemente abra el archivo my.ini ... aquí en la línea no 36 cambie el valor del tamaño máximo permitido del paquete, es decir. max_allowed_packet = 20M
fuente
Asegúrese de que el proceso mysqld no se reinicie debido a los administradores de servicios como systemd.
Tuve este problema en vagabundo con centos 7. Los ajustes de configuración no ayudaron. Resultó que era systemd que mataba el servicio mysqld cada vez que tomaba demasiada memoria.
fuente
Tuve un error similar hoy al duplicar la base de datos (el servidor MySQL se ha ido ...), pero cuando intenté reiniciar mysql.server restart, recibí un error
Así es como lo resolví: abrí Aplicaciones / Utilidades / y ejecuté Activity Monitor
luego pude resolver el problema de error con
fuente
Estoy haciendo algunos cálculos grandes que implican la conexión mysql para permanecer mucho tiempo y con datos pesados. Me enfrentaba a este "problema de Mysql go away". Así que traté de optimizar las consultas, pero eso no me ayudó, luego aumenté el límite de variables mysql que se establece en un valor inferior de forma predeterminada.
wait_timeout max_allowed_packet
Hasta el límite que le convenga, debe ser Any Number * 1024 (Bytes). puede iniciar sesión en la terminal utilizando el comando ' mysql -u username - p ' y puede verificar y cambiar estos límites variables.
fuente
Para alojamiento compartido GoDaddy
En las cuentas de alojamiento compartido de GoDaddy, es complicado 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 IMPORTAR en phpMyAdmin, estaba obteniendo el temido error del servidor MySQL , y no hay más información).
Encontré que Matt Butcher tenía la respuesta correcta. Al igual que Matt, había intentado todo tipo de trucos, desde exportar bases de datos MySQL en fragmentos pequeños hasta escribir scripts que dividen las importaciones grandes en pequeñas. Pero aquí está lo que funcionó:
(1) CPANEL ---> ARCHIVOS (grupo) ---> COPIA DE SEGURIDAD
(2a) En 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 sabio)
(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á suya (en breve ...) 5 segundos
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 Article
fuente
Si aumentar
max_allowed_packet
no ayuda.Recibía el mismo error que usted al importar un
.sql
archivo a mi base de datos a través de Sequel Pro.El error aún persistió después de subir
max_allowed_packet
a,512M
así que ejecuté la importación en la línea de comando en su lugar con:Dio el siguiente error:
Encontré un par de preguntas útiles de StackOverflow:
En mi caso, mi
.sql
archivo estaba un poco corrupto o algo así. El volcado de MySQL que recibimos 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 extraños y codificaciones. Conseguir un nuevo volcado de MySQL y descomprimirlo funcionó correctamente para mí.Solo quería agregar esto aquí en caso de que otros descubrieran que aumentar la
max_allowed_packet
variable no estaba ayudando.fuente
Ninguna de las soluciones con respecto al tamaño del paquete o los tiempos de espera hicieron ninguna diferencia para mí. Necesitaba deshabilitar ssl
https://dev.mysql.com/doc/refman/5.7/en/encrypted-connections.html
fuente
Tengo el mismo problema con
En el archivo \ xampp \ mysql \ bin \ my.ini de phpmyadmin solo obtenemos
que es solo para mysqldump -u root -p dbname. Resolví mi problema reemplazando el código anterior con
fuente