¿Cómo puedo importar una base de datos con MySQL desde la terminal?

373

¿Cómo puedo importar una base de datos con mysql desde la terminal?

No puedo encontrar la sintaxis exacta.

aneuryzm
fuente

Respuestas:

761

Asumiendo que estás en una consola Linux o Windows:

Solicitar contraseña:

mysql -u <username> -p <databasename> < <filename.sql>

Ingrese la contraseña directamente (no segura):

mysql -u <username> -p<PlainPassword> <databasename> < <filename.sql>

Ejemplo:

mysql -u root -p wp_users < wp_users.sql

mysql -u root -pPassword123 wp_users < wp_users.sql

Ver también:

4.5.1.5. Ejecutar sentencias SQL desde un archivo de texto


Nota : Si está en Windows, deberá cd(cambiar el directorio) a su directorio MySQL / bin dentro de CMD antes de ejecutar el comando.

Negro
fuente
139
+1, excepto que no debe pasar su contraseña como parámetro CLI. En lugar de eso, especifique la opción -p e ingrésela manualmente después de la solicitud.
St.Woland
13
No hay espacio entre -p y la contraseña si desea ingresarla por shell.
Kethryweryn
8
mysql -u username -h hostname -ppassword databasename <filename.sql para el host remoto desde la terminal
Shaik Rilwan
8
si ya está dentro del símbolo del sistema mysql (mysql>), simplemente escriba source full_path_of_file (nota: seleccione la base de datos mediante el comando USE DATABASE_NAME antes de importar).
Ankit Sharma
3
@Pekka 웃, si usamos source, podemos ver los mensajes informativos ( "filas afectadas" ) y los mensajes de error. Pero usando su solución, ¿cómo vemos el uso de los mensajes < filename.sql?
Pacerier
141

Forma preferible para windows:

  1. Abra la consola e inicie el modo interactivo MySQL

  2. use <name_of_your_database>;

  3. source <path_of_your_.sql>

Sri Harsha Kappala
fuente
2
¿Por qué no necesitamos un; después del nombre del archivo?
Nabeel Khan
66
@NabeelKhan La mayoría de las declaraciones SQL requieren un ;al final de la declaración, pero hay algunas excepciones, que incluyen USEy SOURCE.
Simon East
1
Me pregunto si esto funciona más rápido que conectar el archivo (como en la respuesta aceptada). Mi sospecha es si .
Simon East
¡Esto es mucho más rápido que importar a través de HeidiSQL ... 3GB en 20 minutos!
kmdsax
Curioso. Cuando eliminé ;el sourcecomando se ejecutó con éxito. Antes no lo haría.
Nikos
33

mysql -u <USERNAME> -p <DB NAME> < <dump file path>

-u - para nombre de usuario

-p - para solicitar la contraseña

P.ej. mysql -u root -p mydb < /home/db_backup.sql

También puede proporcionar una contraseña precedida por -p, pero por razones de seguridad no es recomendable. La contraseña aparecerá en el comando en sí más bien enmascarado.

Mukesh Singh Rathaur
fuente
2
Esta es la respuesta que estoy buscando. "<" esta es la señal que dejé.
Pravinraj Venkatachalam
Si mydb no existe, ¿cómo crearlo dinámicamente cuando activamos el comando mysqldump?
19 परूळेकर
12

Directamente desde var / www / html

mysql -u username -p database_name < /path/to/file.sql

Desde mysql:

mysql> use db_name;
mysql> source backup-file.sql
Lokesh Das
fuente
7

Desde la terminal:

mysql -uroot -p --default-character-set=utf8 database_name </database_path/database.sql
Mohammad Anini
fuente
7

en el tipo de terminal

mysql -uroot -p1234; use databasename; source /path/filename.sql
Patrick Mutwiri
fuente
Esto permitió ver el registro de importación
Thiago Macedo
6

Usualmente uso este comando para cargar mis datos SQL cuando estoy dividido en archivos con nombres: 000-tableA.sql, 001-tableB.sql, 002-tableC.sql.

for anyvar in *.sql; do <path to your bin>/mysql -u<username> -p<password>  <database name> < $anyvar; done

Funciona bien en OSX shell.

Lano
fuente
5

Cómo cargar desde la línea de comando

Explicación:

  1. Primero cree una base de datos o use una base de datos existente. En mi caso, estoy usando una base de datos existente

  2. Cargue la base de datos dando <name of database> = ClassicModelsen mi caso y usando el operador <dar la ruta a ladatabase = sakila-data.sql

  3. Al ejecutar show tables, obtengo la lista de tablas como puede ver.

Nota: En mi caso, recibí un error 1062 , porque estoy tratando de cargar lo mismo nuevamente.

usuario42826
fuente
5
mysql -u username -ppassword dbname < /path/file-name.sql

ejemplo

mysql -u root -proot product < /home/myPC/Downloads/tbl_product.sql

Use esto desde la terminal

vaibhav kulkarni
fuente
5

El siguiente comando funciona en ubuntu 16.04, no estoy seguro de que funcione o no en otras plataformas Linux.

Exportar archivo SQL:

$ mysqldump -u [user_name] -p [database_name] < [database_name.sql]  

Ejemplo: mysqldump -u root -p max_development> max_development.sql

Importar archivo SQL:

$ mysqldump -u [user_name] -p [database_name] > [file_name.sql]

Example: mysqldump -u root -p max_production < max_development.sql

Nota: el archivo SQL debe existir en el mismo directorio

Deepak Chaube
fuente
5

Abrir terminal entonces

 mysql -u root -p

 eg:- mysql -u shabeer -p

Después de eso, crea una base de datos

 mysql> create database "Name";

 eg:- create database INVESTOR;

Luego seleccione esa nueva base de datos "INVERSOR"

 mysql> USE INVESTOR;

Seleccione la ruta del archivo sql de la máquina

 mysql> source /home/shabeer/Desktop/new_file.sql;

Luego presione enter y espere algunas veces si todo se ejecuta entonces

 mysql> exit

ingrese la descripción de la imagen aquí

Shabeer Sha
fuente
4
  1. Abra el Cliente de línea de comandos MySQL y escriba su contraseña

  2. Cambie a la base de datos que desea usar para importar los datos del archivo .sql. Haga esto escribiendo:

    USE your_database_name
  3. Ahora busque el archivo .sql que desea ejecutar.
    Si el archivo se encuentra en el directorio local principal de la unidad C: y el nombre del archivo de script .sql es currentSqlTable.sql, debería escribir lo siguiente:

    \. C:\currentSqlTable.sql

    y presione Enterpara ejecutar el archivo de script SQL.

estudiante001
fuente
77
¿Qué es la figura 1/2/3?
glglgl
4

Después de luchar por algún tiempo, encontré la información en https://tommcfarlin.com/importing-a-large-database/

  1. Conéctese a Mysql (usemos root para nombre de usuario y contraseña):

    mysql -uroot -proot
  2. Conéctese a la base de datos (supongamos que se llama emptyDatabase (debería recibir un mensaje de confirmación):

    connect emptyDatabase

3 Importe el código fuente, digamos que el archivo se llama mySource.sql y está en una carpeta llamada mySoureDb bajo el perfil de un usuario llamado myUser:

source /Users/myUser/mySourceDB/mySource.sql
LumasDesign
fuente
3

Si está utilizando sakila-db del sitio web mysql, es muy fácil en la plataforma Linux, solo siga los pasos mencionados a continuación. Después de descargar el archivo zip de sakila-db , extráigalo . Ahora tendrá dos archivos, uno es sakila-schema.sql y el otro es sakila-data.sql .


  1. Terminal abierta
  2. Ingrese el comando mysql -u root -p <sakila-schema.sql
  3. Ingrese el comando mysql -u root -p <sakila-data.sql
  4. Ahora ingrese el comando mysql -u root -p e ingrese su contraseña, ahora ha ingresado al sistema mysql con la base de datos predeterminada .
  5. Para usar la base de datos sakila, use este comando use sakila;
  6. Para ver tablas en sakila-db, use el comando show tables

Tenga cuidado de que los archivos extraídos estén presentes en el directorio de inicio .

alpha9eek
fuente
2

En Ubuntu, desde el monitor MySQL , ya ha utilizado esta sintaxis:

mysql> use <dbname> -> La instrucción USE le dice a MySQL que la use dbnamecomo la base de datos predeterminada para declaraciones posteriores

mysql> source <file-path>

por ejemplo :

mysql> use phonebook;

mysql> source /tmp/phonebook.sql;

Importante : asegúrese de que el archivo sql esté en un directorio al que mysql pueda acceder como / tmp

Viet Hoang
fuente
1

Antes de ejecutar los comandos en el terminal, debe asegurarse de tener MySQL instalado en su terminal.

Puede usar el siguiente comando para instalarlo:

sudo apt-get update
sudo apt-get install mysql-server

Referencia aquí .

Después de eso, puede usar los siguientes comandos para importar una base de datos:

mysql -u <username> -p <databasename> < <filename.sql>
Wolfack
fuente
1

La forma más sencilla de importar una base de datos en su MYSQL desde el terminal se realiza mediante el proceso mencionado a continuación:

mysql -u root -p root database_name < path to your .sql file

Lo que estoy haciendo arriba es:

  1. Ingresando a mysql con mi nombre de usuario y contraseña (aquí está root& root)
  2. Después de ingresar la contraseña, estoy dando el nombre de la base de datos donde quiero importar mi archivo .sql. Asegúrese de que la base de datos ya exista en su MYSQL
  3. El nombre de la base de datos es seguido por <y luego la ruta a su archivo .sql. Por ejemplo, si mi archivo está almacenado en el Escritorio, la ruta será/home/Desktop/db.sql

Eso es. Una vez que haya hecho todo esto, presione Intro y espere a que su archivo .sql se cargue en la base de datos respectiva

Ankit Saxena
fuente
0

No debe haber espacio entre -p y contraseña

mysql -u [dbusername] -p[dbpassword] [databasename] < /home/serverusername/public_html/restore_db/database_file.sql

Siempre lo uso, funciona perfectamente. Gracias por hacer esta pregunta. Que tengas un gran día. Njoy :)

Kamlesh
fuente
También podemos establecer esta configuración en el trabajo cron (tarea programada) en servidores compartidos, dedicados y en la nube para restablecer o importar la base de datos de vez en cuando automáticamente.
Kamlesh