mysql

Muchas veces te encuentras en la tesitura de que necesitas importar una base de datos de un tamaño considerable (100 MB o más). Para hacer tareas con mysql, todos nos ayudamos de programas como phpmyadmin, que nos facilita la gestión con un entorno gráfico. Pero en todos los servidores con php hay un límite para el tamaño de archivos que se suben, y aunque sea un .zip o .gz, una base de datos grande va a superar ese tamaño. O también puede haber problemas como “Gateway Timeout” (La conexión ha caducado).
La solución más cómoda y rápida en mi opinión es acceder a través de ssh. En Windows puedes usar un programa como putty, y en Linux con la propia terminal es suficiente. Sube el archivo por ftp a la carpeta que prefieras, aunque recomiendo home. Una vez subido y descomprimido, escribe en la terminal lo siguiente:

mysql -h <servidor> -u <usuario> -p <basededatos> < <archivo.sql>

Reemplaza <usuario>, <archivo.sql> y <basededatos> por los que se apliquen en tu caso y pulsa Enter (-h <servidor> en la mayoría de los casos no hace falta usarlo, ya que suele ser el local). Te preguntará la contraseña para el usuario, y luego comenzará la importación, que llevará un rato pero tendremos la certeza de que no se interrumpirá a no ser que haya un problema en ese archivo.

El el caso opuesto, en el que quieres exportar una base de datos directamente al servidor, puedes usar este comando:

mysqldump –opt -h <servidor> -u <usuario> -p <basededatos> > <archivo.sql>

Como en el caso anterior, reemplaza cada opción por su valor y pulsa Enter. Te pedirá la contraseña y comenzará a exportarlo a la ruta desde la que estés ejecutanto el comando.

Para terminar, una pequeña aclaración. Se puede incluir la contraseña también en los dos comandos, pero no es aconsejable por temas de seguridad. Si aún así quisieras hacerlo, simplemente sería cambiar -p por -p<contraseña> (sin espacio entre p y la contraseña).