Importa file SQL in mysql


191

Ho un database chiamato nitm. Non ho creato alcuna tabella lì. Ma ho un file SQL che contiene tutti i dati necessari per il database. Il file è in nitm.sqlcui si trova C:\ drive. Questo file ha una dimensione di circa 103 MB. Sto usando il server Wamp.

Ho usato la seguente sintassi nella console MySQL per importare il file:

mysql>c:/nitm.sql;

Ma questo non ha funzionato.



Risposte:


406

Dalla console mysql:

mysql> use DATABASE_NAME;

mysql> source path/to/file.sql;


assicurati che non ci siano barre prima del percorso se ti riferisci a un percorso relativo ... mi ci è voluto un po 'per capirlo! lol


36
Non hai bisogno di una barra prima del percorso se stai facendo un riferimento relativo. Se stai andando dalla radice, lo farai, cioè/home/user/file.sql
Wes Johnson,

5
Che peccato non c'è modo di aggiungere una risposta ai preferiti :(
baldrs

4
In Chrome sono chiamati segnalibri e puoi semplicemente fare clic sulla stella nella barra degli indirizzi;)
Andrew

2
@ ArseniuszŁozicki aggiungi la domanda e sarai in grado di raggiungere la risposta :) è quello che faccio.
Mandza,

2
Solo per aggiungere a questa risposta che path/to/file.sqlè il percorso del file system locale in cui si trova il client mysql . Ci sono momenti in cui il server MySQL si aspetta che il percorso si trovi sul lato server, IE SELECT ... INTO OUTFILEche rilascia il file nel percorso sul server MySQL!
Devy,

90

Alla fine ho risolto il problema. Ho inserito il file `nitm.sql` nel file` bin` della cartella `mysql` e ho usato la seguente sintassi.

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

E questo ha funzionato.


8
Questo non proviene dalla console mysql come richiesto da OP, ma da una console a mysql. La risposta di Robert Anthony Tribiana descrive come farlo dalla console mysql.
halfpastfour.am

Questo non è il modo esatto per risolvere il problema, non è una soluzione.
Ashish Ratan,

4
Ragazzi sapete che questo è stato l'OP che ha risposto?
Wes,

Se il tuo mysql necessita di una password, allora il metodo non funziona, è necessaria la risposta migliore di @d -_- b
shellbye

52

Se stai usando wamp puoi provare questo. Digita use your_Database_nameprima.

  1. Fare clic sull'icona del server Wamp, quindi cercare, MYSQL > MSQL Consolequindi eseguirlo.

  2. Se non hai la password, premi Invio e digita:

    mysql> use database_name;
    mysql> source location_of_your_file;

    Se hai la password, ti verrà chiesto di inserire una password. Inserisci prima la password, quindi digita:

    mysql> use database_name;
    mysql> source location_of_your_file;

location_of_your_file dovrebbe apparire come C:\mydb.sql

quindi il encomio è mysql> fonte C: \ mydb.sql;

Questo tipo di importazione di dump sql è molto utile per BIG SQL FILE.

Ho copiato il mio file mydb.sqnella directory C:. Dovrebbe essere C maiuscola: per poter essere eseguito

e basta.


1
Questa risposta sembra specifica di WAMP mentre il codice mostrato funziona da qualsiasi ambiente che esegue MySQL dove è possibile accedere a MySQL tramite un terminale o una console.
halfpastfour.am

26

In Windows, se il suggerimento sopra ti dà un errore (file non trovato o db sconosciuto) potresti voler raddoppiare le barre:

Nella console mysql:

mysql> use DATABASE_NAME;

mysql> source C://path//to//file.sql;

1
La barra singola ha funzionato per me sul mio computer Windows.
Manoj Shrestha,

17

Ok, sto usando Linux ma penso che questo valga anche per Windows. Puoi farlo direttamente dal prompt dei comandi

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

O dal prompt di mysql, puoi usare:

mysql>source sqlfilename.sql

Ma entrambi questi approcci hanno i loro benefici nei risultati che mostrano. Nel primo approccio, lo script esce non appena rileva un errore. E la parte migliore, è che ti dice il numero esatto di riga nel file di origine in cui si è verificato l'errore. Tuttavia, visualizza SOLO errori. Se non si sono verificati errori, negli script non viene visualizzato NULLA. Che può essere un po 'snervante. Perché molto spesso esegui uno script con un'intera pila di comandi.

Ora il secondo approccio (dal prompt di mysql) ha il vantaggio di visualizzare un messaggio per ogni diverso comando MySQL nello script. Se rileva errori, visualizza il messaggio di errore mysql ma continua attraverso gli script. Questo può essere positivo, perché è quindi possibile tornare indietro e correggere tutti gli errori prima di eseguire nuovamente lo script. Il rovescio della medaglia è che NON visualizza i numeri di riga nello script in cui si sono verificati gli errori. Questo può essere un po 'doloroso. Ma i messaggi di errore sono altrettanto descrittivi, quindi potresti probabilmente capire dove si trova il problema.

Io, per esempio, preferisco l'approccio da riga di comando direttamente dal sistema operativo.


9

Se stai usando xampp

C:\xampp\mysql\bin\mysql -uroot -p nitm < nitm.sql

7

Ci sei quasi li uso

mysql> \. c:/nitm.sql;

Puoi anche accedere alla guida di

mysql> \?

1
Questo non ha funzionato. Quando ho usato mysql> \. c: /nitm.sql; , ha generato un errore come Impossibile aprire il file 'c: \ nitm.sql;', errore: 2
kushalbhaktajoshi

Hai provato varianti di questo? Alcune applicazioni rispettano C: \ nitm.sql
Lmwangi

Si noti inoltre che il punto e virgola alla fine non è richiesto. Quindi rimuovilo. Un'altra opzione è 'cd c:' quindi prova "\. Nitm.sql"
Lmwangi

1
Si prega di pensare prima di digitare. 'cd c:' è il comando per il prompt DOS non per la console mySql.
kushalbhaktajoshi,

1
mysql> \. ~/Downloads/backups/file.sql ha funzionato perfettamente all'interno di mysql> e anche dalla coosalrisposta terminale ha funzionato.
gmuhammad,

6

Per localhost su XAMPP. Apri una finestra cmd e digita

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

Attenzione! Nessun punto e virgola dopo -p Immettere la password e digitare

use database_name;

per selezionare il database di cui hai bisogno.

Controlla se il tuo tavolo è lì

show tables;

Importa dal tuo file sql

source sqlfile.sql;

Ho inserito il mio file nella posizione C: \ xampp \ mysql \ bin per non confondermi con le posizioni dei file sql.


4

Provare:

mysql -u username -p database_name < file.sql

Controlla le opzioni di MySQL .

Nota: è meglio utilizzare il percorso completo del file SQL file.sql.


3

Non dimenticare di usare

charset utf8

Se il tuo file sql è in utf-8 :)

Quindi devi fare:

cmd.exe

mysql -u root

mysql> charset utf8

mysql> usa mydbname

mysql> sorgente C: \ myfolder \ myfile.sql

In bocca al lupo ))


3

In Linux sono passato alla directory contenente il file .sql prima di avviare mysql. Il cursore di sistema si trova ora nella stessa posizione del file e non sarà necessario un percorso. Usa l'origine myData.sql dove la mia data viene sostituita con il nome del tuo file.

cd whatever directory

mysql - p

connetti targetDB

source myData.sql

Fatto


2

dalla riga di comando (cmd.exe, non dalla shell mysql) provare qualcosa del tipo:

type c:/nite.sql | mysql -uuser -ppassword dbname

Non ho creato alcuna password per il database, quindi è vuota nel campo della password. E ho usato la sintassi sopra come questa c: /nitm.sql | mysql -u root -p nitm ma anche questo non ha funzionato. Potete aiutarmi con questo ancora?
kushalbhaktajoshi

Anche omettere -p non ha funzionato. Questo errore come "c:" non viene riconosciuto come comando interno o esterno, programma eseguibile o file batch.
kushalbhaktajoshi

2

Il tuo dump contiene funzionalità che non sono supportate nella tua versione di MySQL? Puoi anche provare a rimuovere le istruzioni SET commentate MySQL iniziali (e finali).

Non so se il tuo dump provenga da una versione Linux di MySQL (terminazioni di riga)?


Ho già eliminato le istruzioni SET commentate da mysql. Ma si verifica ancora l'errore.
kushalbhaktajoshi

Puoi provare ad accedere alla shell dei comandi di MySQL e usare l'istruzione then: "source c: \ nite.sql". Non dimenticare di selezionare il database corretto.
Maickel,

Apprezzo molto il tuo impegno. Grazie.
kushalbhaktajoshi

2

Ho installato il mio server Wamp in D: drive, quindi devi seguire il seguente percorso dalla tua riga di comando -> (e se hai installato il tuo wamp in c: drive, sostituisci semplicemente d: con c: qui)

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"

qui root è l'utente della mia password phpmyadmin è la password per phpmyadmin, quindi se non hai impostato alcuna password per root, non devi digitare nulla in quel posto, db_name è il database (per il quale il database sta eseguendo il backup), backupfile.sql è il file dal quale desideri il tuo backup del tuo database e puoi anche cambiare la posizione del file di backup (d: \ backupfile.sql) da qualsiasi altra posizione sul tuo computer


1
mysql>c:/nitm.sql;

Ciò scriverebbe l'output del comando mysql su 'nitm.sql;' (Cosa dovrebbe fare il ';'?) Supponendo di avere una copia del file originale (prima di sovrascriverlo) quindi:

mysql < c:/nitm.sql

Neanche questo ha funzionato. Ha generato un errore come ERRORE 1064 <42000>: si è verificato un errore nella sintassi SQL; controlla il manuale corrispondente alla versione del tuo server MySql per la sintassi corretta da usare vicino a 'mysql <c: /nitm.sql' alla riga 1
kushalbhaktajoshi

1

Esporta basi dati particolari

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

questo esporterà database CCR e KIT ...

Importa tutti i DB esportati in un'istanza Mysql particolare (devi essere dove si trova il tuo file di dump)

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

0

Nel sistema operativo Windows, i seguenti comandi funzionano per me.

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

Nessuna virgoletta singola o doppia tra virgolette attorno al nome del file. Il percorso conterrebbe '/' invece di '\'.


0

Per quelli di voi che lottano per ottenere questo risultato provando ogni possibile risposta che potete trovare su SO. Ecco cosa ha funzionato per me su un VPS con Windows 2012 R2:

  1. Posiziona il tuo file sql ovunque si trovi il cestino per me C:\Program Files\MySQL\MySQL Server 8.0\bin

  2. Apri prompt dei comandi di Windows (cmd)

  3. Correre C:\Program Files\MySQL\MySQL Server 8.0\bin > mysql -u [username] -p
  4. Inserisci la tua password
  5. Esegui comando use [database_name];
  6. Importa il tuo file con origine comando C://Program Files//MySQL//MySQL Server 8.0//bin//mydatabasename.sql

Lo ha fatto per me poiché tutto il resto era fallito. Potrebbe aiutarti anche tu.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.