Importar archivo SQL en mysql

190

Tengo una base de datos llamada nitm. No he creado ninguna tabla allí. Pero tengo un archivo SQL que contiene todos los datos necesarios para la base de datos. El archivo es el nitm.sqlque está adentro C:\ drive. Este archivo tiene un tamaño de aproximadamente 103 MB. Estoy usando el servidor wamp.

He usado la siguiente sintaxis en la consola de MySQL para importar el archivo:

mysql>c:/nitm.sql;

Pero esto no funcionó.

kushalbhaktajoshi
fuente

Respuestas:

406

Desde la consola mysql:

mysql> use DATABASE_NAME;

mysql> source path/to/file.sql;


asegúrate de que no haya una barra inclinada antes de la ruta si te refieres a una ruta relativa ... ¡me llevó un tiempo darme cuenta! jajaja

d -_- b
fuente
36
No necesita una barra inclinada antes de la ruta si está haciendo una referencia relativa. Si va desde la raíz, lo hará, es decir/home/user/file.sql
Wes Johnson
55
Qué pena que no haya forma de agregar una respuesta a favoritos :(
calvas
44
En Chrome se llaman marcadores, y puede hacer clic en la estrella en la barra de direcciones;)
Andrew
2
@ ArseniuszŁozicki agrega la pregunta y podrás llegar a la respuesta :) eso es lo que hago.
mandza
2
Solo para agregar a esta respuesta que path/to/file.sqles la ruta del sistema de archivos local donde se encuentra el cliente mysql . Hay momentos en los que el servidor MySQL espera que la ruta esté en el lado del servidor, es decir, SELECT ... INTO OUTFILEque deja caer el archivo en la ruta en el servidor MySQL.
Devy
90

Finalmente resolví el problema. Coloqué el archivo `nitm.sql` en el archivo` bin` de la carpeta `mysql` y utilicé la siguiente sintaxis.

C:\wamp\bin\mysql\mysql5.0.51b\bin>mysql -u root nitm < nitm.sql

Y esto funcionó.

kushalbhaktajoshi
fuente
8
Esto no es de la consola mysql como lo solicitó OP, sino de una consola en mysql. La respuesta de Robert Anthony Tribiana describe cómo hacerlo desde la consola mysql.
halfpastfour.am
Esta no es la forma exacta de resolver el problema, no es una solución.
Ashish Ratan
44
¿Saben que este fue el OP que respondió esto?
Wes
Si su mysql necesita una contraseña, entonces este método no funcionará, necesita la respuesta principal de @d -_- b
shellbye
52

Si está utilizando wamp, puede probar esto. Solo escribe use your_Database_nameprimero.

  1. Haga clic en el icono del servidor wamp, luego búsquelo MYSQL > MSQL Consoley ejecútelo.

  2. Si no tiene contraseña, simplemente presione enter y escriba:

    mysql> use database_name;
    mysql> source location_of_your_file;

    Si tiene contraseña, le pedirá que ingrese una contraseña. Ingrese su contraseña primero y luego escriba:

    mysql> use database_name;
    mysql> source location_of_your_file;

location_of_your_file debería verse como C:\mydb.sql

entonces la recomendación es mysql> fuente C: \ mydb.sql;

Este tipo de volcado de importación SQL es muy útil para BIG SQL FILE.

Copié mi archivo mydb.sqal directorio C:. Debería ser C mayúscula: para ejecutar

y eso es.

Robert Anthony Tribiana
fuente
1
Esta respuesta parece específica de WAMP mientras que el código que se muestra funciona desde cualquier entorno que ejecute MySQL donde pueda acceder a MySQL a través de un terminal o una consola.
halfpastfour.am
26

En Windows, si la sugerencia anterior le da un error (archivo no encontrado o db desconocido), puede duplicar las barras diagonales:

En la consola mysql:

mysql> use DATABASE_NAME;

mysql> source C://path//to//file.sql;
user3219217
fuente
1
La barra diagonal simple funcionó para mí en mi máquina Windows.
Manoj Shrestha
17

Ok, estoy usando Linux, pero creo que esto también es válido para Windows. Puede hacerlo directamente desde el símbolo del sistema

> mysql -u <user name> -p<password> <database name> < sqlfilename.sql

O desde el indicador mysql, puede usar:

mysql>source sqlfilename.sql

Pero ambos enfoques tienen sus propios beneficios en los resultados que muestran. En el primer enfoque, el script se cierra tan pronto como encuentra un error. Y la mejor parte es que le dice el número exacto de línea en el archivo fuente donde ocurrió el error. Sin embargo, SOLO muestra errores. Si no encontró ningún error, el script no muestra NADA. Lo cual puede ser un poco desconcertante. Porque la mayoría de las veces ejecuta un script con una pila completa de comandos.

Ahora, el segundo enfoque (desde el indicador mysql) tiene la ventaja de que muestra un mensaje para cada comando MySQL diferente en el script. Si encuentra errores, muestra el mensaje de error mysql pero continúa a través de los scripts. Esto puede ser bueno, porque luego puede volver y corregir todos los errores antes de volver a ejecutar el script. La desventaja es que NO muestra los números de línea en el script donde se encontraron los errores. Esto puede ser un poco molesto. Pero los mensajes de error son tan descriptivos que probablemente pueda averiguar dónde está el problema.

Yo, por mi parte, prefiero el enfoque de línea de comandos directamente desde el sistema operativo.

peterb
fuente
9

Si está usando xampp

C:\xampp\mysql\bin\mysql -uroot -p nitm < nitm.sql
Nanhe Kumar
fuente
7

Ya casi usas

mysql> \. c:/nitm.sql;

También puede acceder a la ayuda por

mysql> \?
Lmwangi
fuente
1
Esto no funcionó. Cuando usé mysql> \. c: /nitm.sql; , arrojó un error como Error al abrir el archivo 'c: \ nitm.sql;', error: 2
kushalbhaktajoshi
¿Has probado variaciones de esto? Algunas aplicaciones respetan C: \ nitm.sql
Lmwangi
También tenga en cuenta que el punto y coma al final no es obligatorio. Entonces quítalo. Otra opción es 'cd c:' luego intente "\. Nitm.sql"
Lmwangi
1
Por favor, piense antes de escribir. 'cd c:' es el comando para el indicador de DOS, no la consola mySql.
kushalbhaktajoshi
1
mysql> \. ~/Downloads/backups/file.sql funcionó perfectamente dentro de mysql> y desde la coosalrespuesta terminal funcionó también.
gmuhammad
6

Para localhost en XAMPP. Abra una ventana de cmd y escriba

cd C:\xampp\mysql\bin
mysql.exe -u root -p

¡Atención! Sin punto y coma después de -p Ingrese su contraseña y escriba

use database_name;

para seleccionar la base de datos que necesita.

Comprueba si tu mesa está allí

show tables;

Importar desde su archivo sql

source sqlfile.sql;

Puse mi archivo en la ubicación C: \ xampp \ mysql \ bin para no mezclarme con las ubicaciones del archivo sql.

Adrian P.
fuente
4

Tratar:

mysql -u username -p database_name < file.sql

Verifique las opciones de MySQL .

Nota: es mejor utilizar la ruta completa del archivo SQL file.sql.

Akshay Pethani
fuente
3

No olvides usar

charset utf8

Si su archivo sql está en utf-8 :)

Entonces debes hacer:

cmd.exe

mysql -u root

mysql> charset utf8

mysql> use mydbname

mysql> fuente C: \ myfolder \ myfile.sql

Buena suerte ))

Олег Всильдеревьев
fuente
3

En Linux navegué al directorio que contiene el archivo .sql antes de iniciar mysql. El cursor del sistema ahora está en la misma ubicación que el archivo y no necesitará una ruta. Utilice la fuente myData.sql donde mi fecha se reemplaza con el nombre de su archivo.

cd whatever directory

mysql - p

conectar targetDB

source myData.sql

Hecho

Robert Quinn
fuente
2

desde la línea de comandos (cmd.exe, no desde mysql shell) intente algo como:

type c:/nite.sql | mysql -uuser -ppassword dbname
Omry Yadan
fuente
No he creado ninguna contraseña para la base de datos, por lo que está en blanco en el campo de contraseña. Y he usado la sintaxis anterior como esta c: /nitm.sql | mysql -u root -p nitm pero esto tampoco funcionó. ¿Me pueden ayudar con esto un poco más?
kushalbhaktajoshi
Omitir -p no funcionó tan bien. Este error arrojado como 'c:' no se reconoce como un comando interno o externo, un programa operable o un archivo por lotes.
kushalbhaktajoshi
2

¿Su volcado contiene características que no son compatibles con su versión de MySQL? También puede intentar eliminar el inicio (y el final) de las declaraciones SET comentadas de MySQL.

No sé si su volcado proviene de una versión de Linux de MySQL (terminaciones de línea)?

Maickel
fuente
Ya he eliminado las declaraciones SET comentadas de mysql. Pero aún se produce el error.
kushalbhaktajoshi
Puede intentar iniciar sesión en el shell de comandos de MySQL y usar la instrucción then: "source c: \ nite.sql". No olvide seleccionar la base de datos correcta.
Maickel
Yo realmente aprecio tu esfuerzo. Gracias.
kushalbhaktajoshi
2

He instalado mi servidor wamp en D: unidad, por lo que debe ir a la siguiente ruta desde su línea de comando -> (y si ha instalado su wamp en c: unidad, simplemente reemplace d: wtih c: aquí)

D:\>cd wamp
D:\wamp>cd bin
D:\wamp\bin>cd mysql
D:\wamp\bin\mysql>cd mysql5.5.8 (whatever ur verserion will be displayed here use keyboard Tab button)
D:\wamp\bin\mysql\mysql5.5.8>cd bin
D:\wamp\bin\mysql\mysql5.5.8\bin>mysql -u root -p password db_name < "d:\backupfile.sql"

aquí root es usuario de mi contraseña de phpmyadmin es la contraseña de phpmyadmin, por lo que si no ha configurado ninguna contraseña para root, simplemente no escriba nada en ese lugar, db_name es la base de datos (para la que está tomando la copia de seguridad), backupfile.sql es el archivo desde el que desea la copia de seguridad de su base de datos y también puede cambiar la ubicación del archivo de copia de seguridad (d: \ backupfile.sql) desde cualquier otro lugar de su computadora

Sachin
fuente
1
mysql>c:/nitm.sql;

Eso escribiría la salida del comando mysql en 'nitm.sql;' (¿Qué se supone que debe hacer ';'?) Suponiendo que tiene una copia del archivo original (antes de sobrescribirlo), entonces:

mysql < c:/nitm.sql
symcbean
fuente
Esto tampoco funcionó. Lanzó un error como ERROR 1064 <42000>: tiene un error en su sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MySql para obtener la sintaxis correcta para usar cerca de 'mysql <c: /nitm.sql' en la línea 1
kushalbhaktajoshi
1

Exportar bases de datos particulares

 djimi:> mysqldump --user=root --host=localhost --port=3306 --password=test -B CCR KIT >ccr_kit_local.sql

esto exportará las bases de datos CCR y KIT ...

Importe todos los DB exportados a una instancia particular de Mysql (debe estar donde está su archivo de volcado)

djimi:> mysql --user=root --host=localhost --port=3306 --password=test < ccr_kit_local.sql
Musa
fuente
0

En el sistema operativo Windows, los siguientes comandos funcionan para mí.

mysql>Use <DatabaseName>
mysql>SOURCE C:/data/ScriptFile.sql;

No hay comillas simples ni comillas dobles alrededor del nombre del archivo. La ruta contendría '/' en lugar de '\'.

Pabitra Dash
fuente
0

Para aquellos de ustedes que luchan por hacer esto, intenten todas las respuestas posibles que puedan encontrar en SO. Esto es lo que funcionó para mí en un VPS con Windows 2012 R2:

  1. Coloque su archivo sql donde sea que esté el contenedor para mí, se encuentra en C:\Program Files\MySQL\MySQL Server 8.0\bin

  2. Abrir el símbolo del sistema de Windows (cmd)

  3. correr C:\Program Files\MySQL\MySQL Server 8.0\bin > mysql -u [username] -p
  4. Ingresa tu contraseña
  5. Ejecutar comando use [database_name];
  6. Importa tu archivo con fuente de comando C://Program Files//MySQL//MySQL Server 8.0//bin//mydatabasename.sql

Lo hizo por mí ya que todo lo demás había fallado. También podría ayudarte.

usuario45678
fuente