Error #2006 – MySQL server has gone away importando archivo en PhpMyAdmin

Utilizando un entorno WAMP (Windows 10, Apache, MySQL, PHP), cuando intento importar un archivo con el volcado de una base de datos en MySQL utilizando PhpMyAdmin me encuentro con que la carga se detiene y se genera el error “#2006 – MySQL server has gone away”.
El archivo es bastante grande, y aunque he puesto los límites de memoria y de tamaño de archivo suficientemente altos en el archivo php.ini, está claro que también es necesario modificar la configuración de mysql para poder hacer la carga. El truco está en modificar la línea
max_allowed_packet = 1M
en el archivo <directorio de WAMP>/mysql/bin/my.ini dejándola como
max_allowed_packet = 10M

Curiosamente, este error nunca me había dado cuando he trabajado en Linux, debe de ser que la configuración por defecto de mySQL en Linux ya viene preparada para cualquier eventualidad 🙂

Lo he visto en Stack OVerflow (como casi todas las soluciones)

Anuncios

Quitar el arranque automático de apache y mysql

Una vez instalado nuestro entorno de desarrollo LAMP, si nuestro equipo es viejito es posible que, para ahorrar recursos, queramos que los servicios apache y mysql no se inicien automáticamente en el arranque, sino arrancarlos manualmente cuando los necesitemos. En las distribuciones basadas en Debian el procedimiento sería como sigue:

(Entrada modificada el 19/8/2015 siguiendo las indicaciones de este blog, que están basadas en este otro blog. Las instrucciones que tenía mi entrada anteriormente eran incorrectas, muchas gracias a ambos por haberme sacado de mi error.)

Para el servidor Apache:
Ejecutar:
sudo update-rc.d apache2 disable
De esta manera se deshabilita el servicio y por lo tanto su arranque automático.
Para volver a habilitar el servicio:
sudo update-rc.d apache2 enable
No es recomendable usar el comando
sudo update-rc.d -f apache2 remove
porque lo que hace este comando es modificar los directorios /etc/rc0.d, /etc/rc1.d, etc. hasta el /etc/rc6.d (uno para cada uno de los niveles de ejecución) borrando los enlaces simbólicos que controlan el arranque de los servicios. Por ejemplo, si listamos el contenido del directorio /etc/rc6.d después de hacer el comando remove veremos que han desaparecido los ficheros /etc/rc6.d/K01apache2 y /etc/rc6.d/K01mysql. Si quisiéramos recuperar los ficheros borrados, habría que lanzar el comando:
sudo update-rc.d apache2 defaults

Tenemos que tener en cuenta que es posible que cuando posteriormente se instale una actualización de apache, nuévamente nos encontremos con que éste vuelve a arrancarse automáticamente en el inicio. En este enlace comentan que la forma de evitar ésto es lanzando el comando:
sudo update-rc.d apache2 stop 80 0 1 2 3 4 5 6 .
Pero yo no lo he probado.

Para el servicio de mySQL:
En este caso hay que editar el fichero /etc/init/mysql.conf y modificar la línea con
start on runlevel [2345]
para dejarla de la manera siguiente:
start on (never and runlevel [2345])

Para arrancar estos servicios, ejecutamos:
sudo service apache2 start
sudo service mysql start