Come posso importare un database con MySQL dal terminale?


373

Come posso importare un database con mysql dal terminale?

Non riesco a trovare la sintassi esatta.

Risposte:


761

Supponendo che tu sia su una console Linux o Windows:

Richiedi password:

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

Inserisci la password direttamente (non sicura):

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

Esempio:

mysql -u root -p wp_users < wp_users.sql

mysql -u root -pPassword123 wp_users < wp_users.sql

Guarda anche:

4.5.1.5. Esecuzione di istruzioni SQL da un file di testo


Nota : se sei su Windows, dovrai cd(cambiare directory) nella tua directory MySQL / bin all'interno della CMD prima di eseguire il comando.


139
+1 tranne te non dovresti passare la tua password come parametro CLI. Piuttosto basta specificare l'opzione -p e inserirla manualmente dopo il prompt.
St.Woland,

13
Non c'è spazio tra -p e la password se si desidera inserirlo tramite shell.
Kethryweryn,

8
mysql -u username -h hostname -ppassword nome database <nomefile.sql per host remoto dal terminale
Shaik Rilwan

8
se ti trovi già nel prompt dei comandi di mysql (mysql>), digita semplicemente source full_path_of_file (nota: seleziona il database con il comando USE DATABASE_NAME prima dell'importazione).
Ankit Sharma,

3
@Pekka 웃, Se utilizziamo source, possiamo vedere i messaggi informativi ( "righe interessate" ) e i messaggi di errore. Ma usando la tua soluzione, come possiamo vedere i messaggi usando < filename.sql?
Pacerier,

141

Modo preferibile per windows:

  1. Apri la console e avvia la modalità MySQL interattiva

  2. use <name_of_your_database>;

  3. source <path_of_your_.sql>


2
perché non abbiamo bisogno di un; dopo il nome del file?
Nabeel Khan,

6
@NabeelKhan La maggior parte delle istruzioni SQL richiede un ;alla fine dell'istruzione , ma ci sono alcune eccezioni, tra cui USEe SOURCE.
Simon East,

1
Mi chiedo se questo funzioni più velocemente rispetto al piping del file (come nella risposta accettata). Il mio sospetto è .
Simon East,

È molto più veloce dell'importazione tramite HeidiSQL ... 3 GB in 20 minuti!
kmdsax,

Curioso. Quando ho rimosso ;il sourcecomando è stato eseguito correttamente. Prima che non sarebbe.
Nikos,

33

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

-u - per nome utente

-p - per richiedere la password

Per esempio. mysql -u root -p mydb < /home/db_backup.sql

Puoi anche fornire la password preceduta da -p ma per motivi di sicurezza non è consigliabile. La password apparirà sul comando stesso piuttosto mascherata.


2
Questa è la risposta che sto cercando. "<" questo è il segno che ho lasciato.
Pravinraj Venkatachalam,

Se mydb non esiste, allora come crearlo dinamicamente quando lanciamo il comando mysqldump?
अक्षय परूळेकर,

12

Direttamente da var / www / html

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

Da mysql:

mysql> use db_name;
mysql> source backup-file.sql

7

Dal terminal:

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

7

nel tipo di terminale

mysql -uroot -p1234; use databasename; source /path/filename.sql

Ciò ha permesso di vedere il registro delle importazioni
Thiago Macedo,

6

Di solito uso questo comando per caricare i miei dati SQL quando sono divisi in file con nomi: 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

Funziona bene su shell OSX.


5

Come caricare dalla riga di comando

Spiegazione:

  1. Innanzitutto creare un database o utilizzare un database esistente. Nel mio caso, sto usando un database esistente

  2. Carica il database fornendo <name of database> = ClassicModelsnel mio caso e usando l'operatore dai <il percorso al filedatabase = sakila-data.sql

  3. Eseguendo show tables, ottengo l'elenco di tabelle come puoi vedere.

Nota: nel mio caso ho ricevuto un errore 1062 , perché sto provando a caricare di nuovo la stessa cosa.


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

esempio

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

Usa questo dal terminale


5

Sotto il comando funziona su Ubuntu 16.04, non sono sicuro che funzioni o meno su altre piattaforme Linux.

Esporta file SQL:

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

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

Importa file SQL:

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

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

Nota Il file SQL dovrebbe esistere nella stessa directory


5

Apri Terminale Quindi

 mysql -u root -p

 eg:- mysql -u shabeer -p

Successivamente crea un database

 mysql> create database "Name";

 eg:- create database INVESTOR;

Quindi selezionare quel nuovo database "INVESTITORE"

 mysql> USE INVESTOR;

Seleziona il percorso del file sql dalla macchina

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

Quindi premere Invio e attendere alcune volte se è tutto eseguito allora

 mysql> exit

inserisci qui la descrizione dell'immagine


4
  1. Apri MySQL Command Line Client e digita la tua password

  2. Passare al database che si desidera utilizzare per importare i dati del file .sql. Fallo digitando:

    USE your_database_name
  3. Ora trova il file .sql che desideri eseguire.
    Se il file si trova nella directory principale C: unità locale e il nome del file di script .sql è currentSqlTable.sql, digitare quanto segue:

    \. C:\currentSqlTable.sql

    e premere Enterper eseguire il file di script SQL.


7
Che cos'è la figura 1/2/3?
glglgl

4

Dopo aver lottato per qualche tempo ho trovato le informazioni in https://tommcfarlin.com/importing-a-large-database/

  1. Connettiti a Mysql (usiamo root sia per username che per password):

    mysql -uroot -proot
  2. Connettiti al database (diciamo che si chiama emptyDatabase (dovresti ricevere un messaggio di conferma):

    connect emptyDatabase

3 Importa il codice sorgente, diciamo che il file si chiama mySource.sql ed è in una cartella chiamata mySoureDb sotto il profilo di un utente chiamato myUser:

source /Users/myUser/mySourceDB/mySource.sql

3

Se stai usando sakila-db dal sito Web mysql, è molto facile sulla piattaforma Linux seguire i passaggi di seguito indicati, dopo aver scaricato il file zip di sakila-db , estrailo . Ora avrai due file, uno è sakila-schema.sql e l'altro è sakila-data.sql .


  1. Terminale aperto
  2. Immettere il comando mysql -u root -p <sakila-schema.sql
  3. Immettere il comando mysql -u root -p <sakila-data.sql
  4. Ora inserisci il comando mysql -u root -p e inserisci la tua password, ora sei entrato nel sistema mysql di default database .
  5. Per usare il database sakila, usa questo comando usa sakila;
  6. Per vedere le tabelle in sakila-db, usa il comando show tables

Si prega di fare attenzione che i file estratti siano presenti nella home directory .


2

In Ubuntu, dal monitor MySQL , hai già utilizzato questa sintassi:

mysql> use <dbname> -> L'istruzione USE dice a MySQL di utilizzare dbnamecome database predefinito per le dichiarazioni successive

mysql> source <file-path>

per esempio :

mysql> use phonebook;

mysql> source /tmp/phonebook.sql;

Importante : assicurati che il file sql sia in una directory a cui mysql possa accedere a like / tmp


1

Prima di eseguire i comandi sul terminale è necessario assicurarsi che MySQL sia installato sul proprio terminale.

È possibile utilizzare il comando seguente per installarlo:

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

Rinfresco qui .

Successivamente è possibile utilizzare i seguenti comandi per importare un database:

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

1

Il modo più semplice per importare un database nel tuo MYSQL dal terminale è quello che segue:

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

Quello che sto facendo sopra è:

  1. Entrando in mysql con il mio nome utente e password (eccolo root& root)
  2. Dopo aver inserito la password, sto fornendo il nome del database in cui desidero importare il mio file .sql. Assicurati che il database esista già nel tuo MYSQL
  3. Il nome del database è seguito da <e quindi dal percorso al file .sql. Ad esempio, se il mio file è archiviato in Desktop, il percorso sarà/home/Desktop/db.sql

Questo è tutto. Una volta fatto tutto ciò, premi Invio e attendi che il tuo file .sql venga caricato nel rispettivo database


0

Non deve esserci spazio tra -p e password

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

Lo uso sempre, funziona perfettamente. Grazie per porre questa domanda. Vi auguro una buona giornata. Njoy :)


possiamo anche configurare queste impostazioni in cron job (attività di pianificazione) su server condivisi, dedicati e cloud per reimpostare o importare il database di volta in volta automaticamente.
Kamlesh,
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.