statement mysqli_real_connect max_allowed_packet has gone error code cannot away mysql sql mysql-error-2006 mysql-error-2013

max_allowed_packet - mysqli_real_connect(): mysql server has gone away



Error de MYSQL: "Código de error: 2006-El servidor MySQL se ha ido" (11)

Aquí hay una alternativa para editar el archivo my.cnf . Puede establecer el valor de las variables globales de MySQL al iniciar sesión en el servidor MySQL.

Puede consultar la lista de todas las variables globales de MySQL y sus valores con el siguiente comando:

$> mysqladmin variables -u YourMysqlUsername -p

También puede verificar el valor de estas variables iniciando sesión en el servidor MySQL:

$> mysql -u YourMysqlUsername -p mysql> SHOW VARIABLES;

Para comprobar el valor de la variable específica:

mysql> SHOW VARIABLES LIKE ''max_allowed_packet'';

Para resolver el error de MySQL Server Gone Away , necesita aumentar el valor de la variable max_allowed_packet .

mysql> SET GLOBAL max_allowed_packet=1072731894; mysql> quit

Ahora, cuando vuelva a iniciar sesión en MySQL y compruebe el valor de max_allowed_packet , debería ver el valor actualizado.

$> mysql -u YourMysqlUsername -p mysql> SHOW VARIABLES LIKE ''max_allowed_packet''; +--------------------+------------+ | Variable_name | Value | +--------------------+------------+ | max_allowed_packet | 1072731136 | +--------------------+------------+ 1 row in set (0.00 sec)

Recibo el siguiente error, cuando intento importar la base de datos MYSQL:

Error Code: 2013 - Lost connection to MySQL server during queryQuery: Error Code: 2006 - MySQL server has gone away

¿Alguien puede hacerme saber lo que está mal?


Como mencionó Tudor en su reacción:

The most common reason for the MySQL server has gone away error is that the server timed out and closed the connection

Necesita cambiar el tiempo máximo de ejecución y el tamaño para usar los siguientes comandos:

SET GLOBAL wait_timeout = 6000; SET GLOBAL max_allowed_packet= 64M;

Son comandos sql, por lo que puede ejecutarlos como comandos noramal.


En MySQL 5.7 este error puede ser generado por un paquete de comunicación demasiado grande:

Cuando un cliente MySQL o el servidor mysqld recibe un paquete más grande que los bytes max_allowed_packet, emite un error ER_NET_PACKET_TOO_LARGE y cierra la conexión. Con algunos clientes, también puede obtener una conexión perdida con el servidor MySQL durante un error de consulta si el paquete de comunicación es demasiado grande.

Un paquete en MySQL es:

Un paquete de comunicación es una sola instrucción SQL enviada al servidor MySQL, una sola fila que se envía al cliente o un evento de registro binario enviado desde un servidor de replicación maestro a un esclavo.

Puedes encontrar el documento aquí: DOC
Debería intentar configurar el paquete max_allowed en un valor mayor (el valor predeterminado es 4MB) para resolver si su script SQL es mayor que este tamaño. Puede establecer este valor dentro de un archivo de opción para no tener que configurarlo cada vez.
En Microsoft Windows Vista y versiones posteriores , puede establecer max_allowed_packet en el archivo
% PROGRAMDATA% / MySQL / MySQL Server 5.7 / my.ini
o
% PROGRAMDATA% / MySQL / MySQL Server 5.7 / my.cnf

donde PROGRAMDATA = C: / ProgramData
Más información (también para otras SO) HERE


Intenta reiniciar el servidor mysql. Es posible que el servidor no funcione correctamente, pero el notificador de SQL que muestra que se está ejecutando también.


Intente seguir las correcciones relacionadas con el error de 2006:

  • El servidor agotó el tiempo de espera y cerró la conexión. Cómo solucionarlo: compruebe que la variable wait_timeout en el archivo de configuración my.cnf de mysqld sea lo suficientemente grande.

  • 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.


La investigación muestra muchas soluciones correctamente al hablar de configurar max_allowed_packet y wait_timeout para mysql en my.cnf; pequeño addendum de que la instalación predeterminada de mysql en mac osx no parece incluir este archivo. Es posible que primero deba crearlo en /etc/my.cnf (esto solo es un problema si está utilizando la instalación predeterminada de mysql en lugar de una pila de mamp o similar)

el contenido de /etc/my.cnf que corrigió este problema para mí a continuación:

[mysqld] max_allowed_packet= 64M wait_timeout= 6000


Muestra tus variables mySql

  • muestra variables como ''max%''

  • establecer global max_allowed_packet = {PacketRANGE}; // me gusta esto 10485760;

  • muestra variables globales como ''max_all%'';

Disfruta de tu codificación here


Ocurre a menudo, si su consulta INSERT es una instrucción de una sola línea demasiado grande con varias filas.


Probé todas las soluciones y nada funcionó.
Utilizo el banco de trabajo para conectar de forma remota hostgator
Me di cuenta de que el servidor host de mysql era la versión 5.5 y en mi entorno de trabajo está configurado para la versión 5.6
cuando puse el banco de trabajo a 5.5 él comenzó a trabajar

Edición / preferencias / mysql / versión de destino predeterminada


hay muchas razones por las que te está ocurriendo este problema, Here puedes encontrar todas las posibles razones, personalmente he estado luchando con el tamaño del paquete, pero he actualizado mi archivo my.ini, pero antes de hacer eso, He comprobado la variable max_allowed_packet que me había dado 1048576B = 1MB y he actualizado a 5MB. muestra las variables donde variable_name le gusta ''% paquete%''

seleccione 1048576/1024/1024

seleccione 5242880/1024/1024


Here puede leer más sobre este error y varias formas de evitarlo / resolverlo.

De la documentación:

El motivo más común por el cual el servidor MySQL se ha ido por error es que el servidor agotó el tiempo de espera y cerró la conexión