27 de diciembre de 2012

Importar una base de datos usando SSH

MySQL
(Photo credit: Wikipedia)
Si necesitamos importar una base de datos creada localmente, hacia un servidor remoto MySQL, es una tarea que se puede realizar usando el comando SSH para transferir el script de base de datos, y un comando MySQL para importar al Servidor de Bases de Datos. El proceso es el siguiente:
Supongamos, que el script sql de la base de datos que deseamos importar al servidor se llama 'mi_db.sql'.

Transferencia al servidor remoto de la DB

Entonces, la primera tarea es transferir el archivo al servidor remoto usando el comando de copia de segura de una conexión SSH (conexión telnet segura). Abrimos la terminal de Linux y escribimos:
scp mi_db.sql user@IP_remote_server:/ruta_destino/

Luego debemos, conectar al servidor remoto desde la terminal usando el comando SSH:
ssh user@IP_remote_server

Nos solicitará la password, así una vez levanta la terminal en el servidor remoto que corre el servidor de base de datos MySQL.

Importación de la DB al Servidor MySQL

Iremos a la carpeta donde se encuentra el archivo transferido 'mi_db.sql' y desde ese lugar ejecutamos la importación de la base de datos con el comando:
mysql -u user_db -p db_name < mi_db.sql

También nos solicitará la password de la cuenta en el servidor MySQL. Y vez verificada las credenciales, el servidor MySQL comenzará la importación de la base de datos.
Este proceso tiene la ventaja que estamos operando directamente con MySQL, y a diferencia de usar la interfaz web de phpMyAdmin, no tendremos los típicos problemas de time-out de ejecución de los script PHP, cuando la base de datos es grande.