Importar base de datos a una instancia MySQL local
Este artículo proporciona una guía básica para importar una base de datos a una instancia local de MySQL desde archivos de texto a través de la línea de comandos utilizando mysqlimport
cliente, que es un programa incluido en MySQL.
El mysqlimport
El programa ofrece una interfaz de línea de comandos simplificada para LOAD DATA
Declaración de MySQL, que lee filas de un archivo de texto para agregarlas a las tablas de la base de datos. mysqlimport
envía un LOAD DATA
declaración al servidor.
Requisitos
- El
mysqlimport
El programa elimina la extensión del archivo para identificar el nombre de la tabla, por lo que el nombre del archivo es importante. Si la tabla de destino se llamatest_table
, el archivo se puede llamartest_table.txt
,test_table.csv
,test_table.tab
, o cualquier otra extensión. - La tabla de destino debe existir en la tabla. En caso de que obtenga un error porque la tabla no existe, asegúrese de crearla antes de usar
mysqlimport
herramienta y que el nombre del archivo coincida correctamente con el nombre de la tabla.
Usando el cliente mysqlimport
La sintaxis del programa `mysqlimport´ es la siguiente:
mysqlimport [OPTIONS] DB_NAME TEXT_FILE_1 [TEXT_FILE_2 ... ]
Opciones útiles
El mysqlimport
El comando admite múltiples opciones. En esta sección, describiremos algunas de las opciones más útiles.
Autenticación
La bandera --user
o -u
es el nombre de usuario de MySQL que se usará para conectarse al servidor.
También puede agregar el --password
o -p
bandera para especificar la contraseña del usuario para conectarse al servidor. Tenga en cuenta que el uso de esta opción requiere que la contraseña se escriba en la invocación del comando, lo cual es inseguro como se guarda en el registro del historial de comandos. Si no agrega esta bandera, se le pedirá la contraseña después de ejecutar el comando.
En caso de que el usuario no necesite ninguna contraseña para acceder al servidor, puede evitar que el terminal solicite una utilizando --skip-password
opción.
mysqlimport -u USERNAME -password NOT_SO_SECURE_PASSWORD db_name table_name.txt
Leer archivos locales
La bandera --local
o -L
indica que el archivo se encontrará en el cliente. Si no se agrega esta bandera, el archivo se buscará en el servidor.
mysqlimport -u USERNAME --local db_name table_name.txt
Comprimir la información
Para comprimir la información enviada entre el cliente y el servidor (si es posible) use el --compress
o -C
opción.
Especifique los nombres de las columnas
Usando las --columns
y proporcionando una lista separada por comas, puede definir el nombre de las columnas importadas.
mysqlimport -u USERNAME --columns column1,column2,column3 --local db_name table_name.txt
Otras opciones
Algunas otras opciones comunes se enumeran a continuación:
--delete
:vacía la tabla de destino antes de importar los nuevos datos.--lock-tables
:bloquea todas las tablas evitando cualquier escritura. Esto permite que todas las mesas estén correctamente sincronizadas.--hostname
o-h
:indica el host donde se importarán los datos. El valor predeterminado eslocalhost
.--port
o-P
:indica el puerto TCP/IP que se utilizará para la conexión.
Conclusiones
El mysqlimport
client es realmente útil para importar información a tablas existentes en una instancia de MySQL dentro del mismo servidor (local) o a otro servidor usando el --hostname
y --port
opciones de manera rápida y confiable.
Las opciones mencionadas en este artículo le permitirán realizar una importación fácil con criterios específicos.
Artículos relacionados
Para obtener la guía completa de las opciones de `mysqlimport´, puede visitar la documentación oficial de mysqlimport.