Hero

Como configurar MySQL para importar base de datos grandes

Enero 30, 2013

enzo

En muchas ocasiones necesitamos instalar en nuestros maquina locales sitios en producción para hacer un desarrollo o depuración mas rápido, esto trae consigo que se necesite importar bases de datos muy grandes.

El error mas común es que no se pueda importar la base de datos, retornando un error de que la comunicación con el servidor de MySQL se ha perdido, como se muestra a continuación.

$ /mysql -f -uroot -proot mydb -h 127.0.0.1 < ~/Downloads/prod-mysql-2013-01-29.sql
ERROR 2006 (HY000) at line 6565: MySQL server has gone away
$

Para corregir este error se debe cambiar la configuración por defecto de MySQL, si no conocemos la ubicación de este archivo podemos usar el comando que se muestra a continuación para determinar en que ubicaciones MySQL espera encontrar la configuración

$ ./mysql --help | grep my.cnf 
/etc/my.cnf /etc/mysql/my.cnf /Applications/MAMP/conf/my.cnf ~/.my.cnf
$

En mi caso tengo MySQL proveído por una instalación de MAMP, por lo tanto creare un archivo en la ubicación /Applications/MAMP/conf/my.cnf, tomando como base una configuración para bases de datos grandes la cual esta disponible en la documentación de MySQL y que debería estar disponible en la ruta /usr/share/doc/mysql-server-5.0/examples/my-large.cnf.gz.

Para el caso de versión que trae MAMP y quizas para muchas otras, aplicare dos cambios.

1. Remover la directriz #skip-locking

2. incrementar max_allowed_packet = 100M

Luego solo bastaría con reiniciar el server de MySQL y tratar de importar nuevamente la base de datos.

Adjunto encontrara el archivo de configuración modificado.

Recibe consejos y oportunidades de trabajo 100% remotas y en dólares de weKnow Inc.