hy000 - mysql server has gone away xampp
Error de MySQL 2006: el servidor de mysql se ha ido (19)
El escenario poco probable es que tenga un firewall entre el cliente y el servidor que fuerce el restablecimiento de TCP en la conexión.
Tuve ese problema y descubrí que nuestro firewall corporativo F5 estaba configurado para terminar sesiones inactivas que están inactivas durante más de 5 minutos.
Una vez más, este es el escenario poco probable.
Estoy ejecutando un servidor en mi oficina para procesar algunos archivos y reportar los resultados a un servidor MySQL remoto.
El procesamiento de los archivos lleva algo de tiempo y el proceso muere a la mitad con el siguiente error:
2006, MySQL server has gone away
He oído hablar de la configuración de MySQL, wait_timeout , pero ¿necesito cambiar eso en el servidor de mi oficina o en el servidor MySQL remoto?
En MAMP (versión no profesional) agregué
--max_allowed_packet=268435456
a .../MAMP/bin/startMysql.sh
Créditos y más detalles here
En Windows, los chicos que usan xampp deben usar esta ruta xampp / mysql / bin / my.ini y cambiar max_allowed_packet (en la sección [mysqld]) a su tamaño de elección. p.ej
max_allowed_packet=8M
De nuevo en php.ini (xampp / php / php.ini) cambie upload_max_filesize el tamaño de elección. p.ej
upload_max_filesize=8M
Me dio un dolor de cabeza por algún tiempo hasta que descubrí esto. Espero eso ayude.
En mi caso, era un valor bajo de la variable open_files_limit
, que bloqueaba el acceso de mysqld a los archivos de datos.
Lo revisé con:
mysql> SHOW VARIABLES LIKE ''open%'';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 1185 |
+------------------+-------+
1 row in set (0.00 sec)
Después de cambiar la variable a gran valor, nuestro servidor estaba vivo de nuevo:
[mysqld]
open_files_limit = 100000
Encontré la solución para "# 2006 - el servidor MySQL se ha ido" este error. La solución es solo que tienes que verificar dos archivos
- config.inc.php
- config.sample.inc.php
La ruta de estos archivos en Windows es
C:/wamp64/apps/phpmyadmin4.6.4
En estos dos archivos, el valor de esto:
$cfg[''Servers''][$i][''host'']must be ''localhost'' .
En mi caso fue:
$cfg[''Servers''][$i][''host''] = ''127.0.0.1'';
cambiarlo a:
"$cfg[''Servers''][$i][''host'']" = ''localhost'';
Asegúrate en ambos:
- config.inc.php
- config.sample.inc.php archivos debe ser ''localhost''.
Y último conjunto:
$cfg[''Servers''][$i][''AllowNoPassword''] = true;
Luego reinicie Wampserver.
Para cambiar el nombre de usuario y la contraseña de phpmyadmin
Puede cambiar directamente el nombre de usuario y la contraseña de phpmyadmin a través del archivo config.inc.php
Estas dos líneas
$cfg[''Servers''][$i][''user''] = ''root'';
$cfg[''Servers''][$i][''password''] = '''';
Aquí puede dar un nuevo nombre de usuario y contraseña. Después de los cambios guarde el archivo y reinicie el servidor WAMP.
Error: 2006 ( CR_SERVER_GONE_ERROR )
Mensaje: el servidor MySQL se ha ido
En general, puede volver a intentar la conexión y luego hacer la consulta nuevamente para resolver este problema, intente como 3-4 veces antes de darse por vencido por completo.
Asumiré que estás usando PDO. De ser así, vería la excepción PDO, incrementaría un contador y luego volvería a intentarlo si el contador está por debajo de un umbral.
Si tiene una consulta que está causando un tiempo de espera, puede establecer esta variable ejecutando:
SET @@GLOBAL.wait_timeout=300;
SET @@LOCAL.wait_timeout=300; -- OR current session only
Donde 300 es el número de segundos que cree que es el tiempo máximo que puede tomar la consulta.
Más información sobre cómo lidiar con los problemas de conexión de Mysql.
EDITAR: Otras dos configuraciones que también querrás utilizar son net_write_timeout
y net_read_timeout
.
Estaba obteniendo el mismo error en mi servidor Ubuntu de DigitalOcean.
Traté de cambiar los valores de max_allowed_packet y wait_timeout, pero ninguno de ellos lo solucionó.
Resulta que mi servidor se quedó sin RAM. Agregué un archivo swap de 1GB y eso solucionó mi problema.
Revisa tu memoria con free -h
para ver si eso es lo que está causando.
Este error se produce debido a la expiración de wait_timeout.
Simplemente vaya al servidor mysql y compruebe su wait_timeout:
mysql> MOSTRAR VARIABLES COMO ''wait_timeout''
mysql> set global wait_timeout = 600 # 10 minutos o tiempo máximo de espera que necesita
http://sggoyal.blogspot.in/2015/01/2006-mysql-server-has-gone-away.html
Esto podría ser un problema de su tamaño de archivo .sql.
Si está usando xampp. Vaya al panel de control de xampp -> Haga clic en Configuración de MySQL -> Abra my.ini.
Aumenta el tamaño del paquete.
max_allowed_packet = 2M -> 10M
Fue un problema de RAM para mí.
Estaba teniendo el mismo problema incluso en un servidor con 12 núcleos de CPU y 32 GB de RAM. Investigué más e intenté liberar RAM. Aquí está el comando que utilicé en Ubuntu 14.04 para liberar RAM:
sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
Y, arregló todo. Lo he configurado en cron para que se ejecute cada hora.
crontab -e
0 * * * * bash /root/ram.sh;
Y puede usar este comando para verificar la cantidad de RAM disponible disponible:
free -h
Y obtendrás algo como esto:
total used free shared buffers cached
Mem: 31G 12G 18G 59M 1.9G 973M
-/+ buffers/cache: 9.9G 21G
Swap: 8.0G 368M 7.6G
Me he encontrado con esto varias veces y normalmente he encontrado que la respuesta es una configuración predeterminada muy baja de max_allowed_packet
. /etc/my.cnf
en /etc/my.cnf
(bajo [mysqld]
) a 8 o 16M generalmente lo arregla.
[mysqld]
max_allowed_packet=16M
Nota: Esto se puede configurar en su servidor mientras se está ejecutando.
Use set global max_allowed_packet=104857600
. Esto lo establece en 100MB.
Para Vagrant Box, asegúrese de asignar suficiente memoria a la caja
config.vm.provider "virtualbox" do |vb|
vb.memory = "4096"
end
Puede ser más fácil verificar si la conexión y restablecerla si es necesario.
Ver PHP:mysqli_ping para obtener información sobre eso.
Recibí el mensaje Error 2006 en diferentes software de clientes MySQL en mi escritorio Ubuntu. Resultó que mi versión del controlador JDBC era demasiado antigua.
Si está utilizando 64Bit WAMPSERVER, busque múltiples apariciones de max_allowed_packet porque WAMP usa el valor establecido en [wampmysqld64] y no el valor establecido en [mysqldump], que para mí era el problema, estaba actualizando el incorrecto. Establezca esto como algo como max_allowed_packet = 64M.
Esperemos que esto ayude a otros usuarios de Wampserver.
Si sabe que se va a desconectar por un tiempo, puede cerrar su conexión, hacer su procesamiento, reconectar y escribir sus informes.
Tuve el mismo problema, pero cambiar max_allowed_packet
en el archivo my.ini/my.cnf
en [mysqld]
hizo el truco.
agregar una linea
max_allowed_packet = 500M
ahora restart the MySQL service
una vez que haya terminado.
Utilicé el siguiente comando en la línea de comandos de MySQL para restaurar una base de datos MySQL cuyo tamaño supera los 7 GB y funciona.
set global max_allowed_packet=268435456;
elimine el comentario de la línea siguiente en su my.ini/my.cnf
, esto dividirá su archivo grande en una porción más pequeña
# binary logging format - mixed recommended
# binlog_format=mixed
A
# binary logging format - mixed recommended
binlog_format=mixed