Importar y Exportar Bases de Datos en MySQL usando Línea de Comandos
La gestión de copias de seguridad y migraciones de bases de datos es una tarea esencial para cualquier administrador de bases de datos MySQL. Utilizando la línea de comandos, puede exportar fácilmente bases de datos a archivos de copia de seguridad o importarlas a un nuevo entorno. Esta guía cubre cómo importar y exportar bases de datos en MySQL utilizando la línea de comandos.
Requisitos previos
Antes de empezar, asegúrese de que:
- MySQL está instalado y en ejecución en su servidor o máquina local.
- Tiene acceso a un terminal o línea de comandos.
- Dispone de las credenciales MySQL necesarias, incluidos el nombre de usuario y la contraseña.
Exportando Bases de Datos con mysqldump
La utilidad mysqldump es la herramienta estándar para exportar bases de datos en MySQL. Crea un archivo .sql que contiene las sentencias SQL necesarias para recrear la base de datos.
1. Exportar una única base de datos
Para exportar una única base de datos, utilice la siguiente sintaxis:
mysqldump -u [nombre_usuario] -p [nombre_base_datos] > [nombre_archivo].sql
- -u [nombre_usuario]: El nombre de usuario de MySQL.
- -p: Solicita la contraseña de MySQL.
- [nombre_base_de_datos]: El nombre de la base de datos que desea exportar.
- [nombre_archivo].sql: El nombre del archivo de salida que contendrá la copia de seguridad de la base de datos.
Ejemplo:
Este comando solicitará la contraseña del usuario root y creará un archivo llamado mydatabase_backup.sql que contendrá todos los datos y la estructura de mydatabase.
2. Exportar varias bases de datos
Para exportar varias bases de datos, utilice el indicador –databases seguido de los nombres de las bases de datos:
mysqldump -u [nombre de usuario] -p --databases [base de datos1] [base de datos2] > [nombre de archivo].sql
Ejemplo:
mysqldump -u root -p --databases db1 db2 > multiple_databases_backup.sql
Este comando exportará tanto db1 como db2 a multiple_databases_backup.sql.
3. Exportar todas las bases de datos
Para exportar todas las bases de datos de su servidor MySQL, utilice la opción –all-databases:
mysqldump -u [nombre_usuario] -p --all-databases > all_databases_backup.sql
Ejemplo:
mysqldump -u root -p --all-databases > all_databases_backup.sql
Esto crea una copia de seguridad completa de todas las bases de datos en all_databases_backup.sql.
4. Exportar sólo la estructura de tablas (sin datos)
Si sólo necesita la estructura de las tablas sin los datos, añada el indicador –no-data:
mysqldump -u [nombre_usuario] -p --no-data [nombre_base_de_datos] > structure_only.sql
Ejemplo:
mysqldump -u root -p --no-data mydatabase > structure_only.sql
5. Exportar tablas específicas
Para exportar tablas específicas de una base de datos, enumérelas después del nombre de la base de datos:
mysqldump -u [nombre_usuario] -p [nombre_base_datos] [tabla1] [tabla2] > [nombre_archivo].sql
Ejemplo:
mysqldump -u root -p mi_base_de_datos tabla1 tabla2 > tablas_backup.sql
Importar bases de datos con mysql
Para importar una base de datos desde un archivo SQL, utilice el comando mysql.
1. Importar una sola base de datos
Para importar un archivo SQL a una base de datos MySQL, utilice el siguiente comando:
mysql -u [nombre_usuario] -p [nombre_base_datos] < [nombre_archivo].sql
- -u [nombre_usuario]: El nombre de usuario de MySQL.
- -p: Solicita la contraseña de MySQL.
- [nombre_base_datos]: El nombre de la base de datos donde se importarán los datos.
- [nombre_archivo].sql: El nombre del archivo .sql a importar.
Ejemplo:
mysql -u root -p mi_base_de_datos < mi_base_de_datos_respaldo.sql
Este comando solicitará la contraseña del usuario root e importará el contenido de mydatabase_backup.sql a mydatabase.
2. Importación a una nueva base de datos
Si desea importar a una base de datos nueva, primero debe crear la base de datos y, a continuación, importar el archivo .sql.
Paso 1: Crear una nueva base de datos.
mysql -u [nombre_usuario] -p -e "CREATE DATABASE [nombre_nueva_base_de_datos];"
Paso 2: Importe el archivo .sql a la nueva base de datos.
mysql -u [nombre_usuario] -p [nombre_nueva_base_de_datos] < [nombre_archivo].sql
Ejemplo:
mysql -u root -p -e "CREATE DATABASE newdatabase;"
mysql -u root -p nueva_base_de_datos < mi_base_de_datos_respaldo.sql
3. Importar todas las bases de datos
Si ha realizado una copia de seguridad de todas las bases de datos utilizando –all-databases, puede importarlas de nuevo utilizando:
mysql -u [username] -p < all_databases_backup.sql
Ejemplo:
mysql -u root -p < all_databases_backup.sql
Este comando restaurará todas las bases de datos contenidas en el archivo all_databases_backup.sql.
Consejos para usar mysqldump y mysql
- Utilice la compresión: Para ahorrar espacio en disco y tiempo de transferencia, puede comprimir el archivo de copia de seguridad utilizando gzip:
mysqldump -u root -p mydatabase | gzip > mydatabase_backup.sql.gz
Y para importarlo
gunzip < mydatabase_backup.sql.gz | mysql -u root -p mydatabase
- Verifique la base de datos antes de importarla: Asegúrate de que la base de datos a la que vas a importar está vacía o contiene datos compatibles para evitar conflictos.
- Compruebe el juego de caracteres: Si trabaja con caracteres no ASCII, asegúrese de que exporta e importa con el juego de caracteres correcto utilizando la opción –default-character-set:
mysqldump -u root -p --default-character-set=utf8 mydatabase > mydatabase_backup.sql
- Tratamiento de errores: Si te encuentras con errores durante la importación, comprueba que no falten bases de datos o estructuras de tablas y asegúrate de que el archivo .sql está completo.
Resumen
Exportar e importar bases de datos MySQL usando la línea de comandos es sencillo con mysqldump y mysql. Estas herramientas permiten flexibilidad a la hora de gestionar copias de seguridad, migrar bases de datos entre servidores y crear exportaciones de sólo estructura o de datos específicos. Conociendo los comandos y sus opciones, puedes asegurar operaciones de bases de datos sin problemas y mantener la integridad de los datos durante las transferencias.