MySQL: ¿Cómo exportar e importar un archivo .sql desde la línea de comandos?

Quiero exportar e importar un archivo .sql desde y hacia una base de datos MySQL desde la línea de comandos.

¿Hay algún comando para exportar el archivo .sql en MySQL? Entonces, ¿cómo lo importo?

Al realizar la importación, puede haber restricciones como activar / desactivar la verificación de clave externa o exportar solo la estructura de la tabla .

¿Podemos establecer esas opciones con mysqldump ?

Exportar

Si se trata de un DB completo, entonces:

 $ mysqldump -u [uname] -p[pass] db_name > db_backup.sql 

Si se trata de todos los DB, entonces:

 $ mysqldump -u [uname] -p[pass] --all-databases > all_db_backup.sql 

Si se trata de tablas específicas dentro de un DB, entonces:

 $ mysqldump -u [uname] -p[pass] db_name table1 table2 > table_backup.sql 

Incluso puede llegar a la autocompresión de la salida usando gzip (si su DB es muy grande):

 $ mysqldump -u [uname] -p[pass] db_name | gzip > db_backup.sql.gz 

Si desea hacer esto de forma remota y tiene acceso al servidor en cuestión, entonces funcionaría lo siguiente (suponiendo que el servidor MySQL está en el puerto 3306):

 $ mysqldump -P 3306 -h [ip_address] -u [uname] -p[pass] db_name > db_backup.sql 

Importar

Escriba el siguiente comando para importar el archivo de datos sql:

 $ mysql -u username -p -h localhost DATA-BASE-NAME < data.sql 

En este ejemplo, importe el archivo 'data.sql' a la base de datos 'blog' usando sat como nombre de usuario:

 $ mysql -u sat -p -h localhost blog < data.sql 

Si tiene un servidor de base de datos dedicado, reemplace el nombre de host del host local con el nombre real del servidor o la dirección IP de la siguiente manera:

 $ mysql -u username -p -h 202.54.1.10 databasename < data.sql 

O use un nombre de host como mysql.cyberciti.biz

 $ mysql -u username -p -h mysql.cyberciti.biz database-name < data.sql 

Si no sabe si el nombre de la base de datos o el nombre de la base de datos está incluido en el volcado sql, puede probar algo de la siguiente manera:

 $ mysql -u username -p -h 202.54.1.10 < data.sql 

Consulte: http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html

Si quieres una herramienta de GUI, probablemente puedas usar SQLyog

Escriba el siguiente comando para importar el archivo de datos sql:

 $ mysql -u username -p -h localhost DATA-BASE-NAME < data.sql 

En este ejemplo, importe el archivo 'data.sql' a la base de datos 'blog' utilizando vivek como nombre de usuario:

 $ mysql -u vivek -p -h localhost blog < data.sql 

Si tiene un servidor de base de datos dedicado, reemplace el nombre de host del host local con el nombre real del servidor o la dirección IP de la siguiente manera:

 $ mysql -u username -p -h 202.54.1.10 databasename < data.sql 

Para exportar una base de datos, use lo siguiente:

 mysqldump -u username -p databasename > filename.sql 

Tenga en cuenta los símbolos < y > en cada caso.

Si ya está ejecutando el shell de SQL, puede usar el comando de source para importar datos:

 use databasename; source data.sql; 

Tratar

 mysqldump databaseExample > file.sql 

mysqldump no va a volcar eventos de base de datos, disparadores y rutinas a menos que se indique explícitamente al descargar bases de datos individuales;

 mysqldump -uuser -p db_name --events --triggers --routines > db_name.sql 

Bueno, puedes usar el comando a continuación para exportar,

mysqldump –database –user = root –contraseña your_db_name> export_into_db.sql

y el archivo generado estará disponible en el mismo directorio donde ejecutó este comando.

Ahora inicie sesión en mysql usando el comando,

mysql -u [nombre de usuario] -p

luego use el comando “fuente” con la ruta del archivo.

Puede encontrar más información sobre: Import Export MySQL DB

Disfruta 🙂

Vuelque una base de datos completa a un archivo:

 mysqldump -u USERNAME -p password DATABASENAME > FILENAME.sql 

ya que no tengo suficiente reputación para comentar después de la publicación más alta, por lo que agrego aquí.

usar ‘|’ en la plataforma de Linux para ahorrar espacio en disco.

thx @Hariboo, agregue eventos / triggers / parámetros de rutinas

 mysqldump -x -u [uname] -p[pass] -C --databases db_name --events --triggers --routines | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/ ' | awk '{ if (index($0,"GTID_PURGED")) { getline; while (length($0) > 0) { getline; } } else { print $0 } }' | grep -iv 'set @@' | trickle -u 10240 mysql -u username -p -h localhost DATA-BASE-NAME 

algunos problemas / consejos:

Error: …… no existe cuando se utilizan TABLAS DE BLOQUEO

 # --lock-all-tables,-x , this parameter is to keep data consistency because some transaction may still be working like schedule. # also you need check and confirm: grant all privileges on *.* to root@"%" identified by "Passwd"; 

ERROR 2006 (HY000) en la línea 866: servidor MySQL se ha ido mysqldump: Got errno 32 en escritura

 # set this values big enough on destination mysql server, like: max_allowed_packet=1024*1024*20 # use compress parameter '-C' # use trickle to limit network bandwidth while write data to destination server 

ERROR 1419 (HY000) en la línea 32730: no tiene el privilegio SUPER y el registro binario está habilitado (es posible que desee utilizar la variable menos segura log_bin_trust_function_creators)

 # set SET GLOBAL log_bin_trust_function_creators = 1; # or use super user import data 

ERROR 1227 (42000) en la línea 138: acceso denegado; necesita (al menos uno de) los SUPER privilegios para esta operación mysqldump: Got errno 32 on write

 # add sed/awk to avoid some privilege issues 

¡espero que esto ayude!

Puede usar esta secuencia de comandos para exportar o importar cualquier base de datos desde la terminal que se proporciona en este enlace: https://github.com/Ridhwanluthra/mysql_import_export_script/blob/master/mysql_import_export_script.sh

 echo -e "Welcome to the import/export database utility\n" echo -e "the default location of mysqldump file is: /opt/lampp/bin/mysqldump\n" echo -e "the default location of mysql file is: /opt/lampp/bin/mysql\n" read -p 'Would like you like to change the default location [y/n]: ' location_change read -p "Please enter your username: " u_name read -p 'Would you like to import or export a database: [import/export]: ' action echo mysqldump_location=/opt/lampp/bin/mysqldump mysql_location=/opt/lampp/bin/mysql if [ "$action" == "export" ]; then if [ "$location_change" == "y" ]; then read -p 'Give the location of mysqldump that you want to use: ' mysqldump_location echo else echo -e "Using default location of mysqldump\n" fi read -p 'Give the name of database in which you would like to export: ' db_name read -p 'Give the complete path of the .sql file in which you would like to export the database: ' sql_file $mysqldump_location -u $u_name -p $db_name > $sql_file elif [ "$action" == "import" ]; then if [ "$location_change" == "y" ]; then read -p 'Give the location of mysql that you want to use: ' mysql_location echo else echo -e "Using default location of mysql\n" fi read -p 'Give the complete path of the .sql file you would like to import: ' sql_file read -p 'Give the name of database in which to import this file: ' db_name $mysql_location -u $u_name -p $db_name < $sql_file else echo "please select a valid command" fi 
Intereting Posts