from - mysql import database




Come importare un file SQL usando la riga di comando in MySQL? (20)

Ho un file .sql con un'esportazione da phpMyAdmin . Voglio importarlo in un altro server usando la riga di comando.

Ho un'installazione di Windows Server 2008 R2. Ho inserito il file .sql C e ho provato questo comando

database_name < file.sql

Non funziona. Ottengo errori di sintassi.

  • Come posso importare questo file senza problemi?
  • Devo prima creare un database?

Importa un database

  1. Vai a guidare:

    command: d:
    
  2. Login MySQL

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. Chiederà il pwd. Inseriscilo:

    pwd
    
  4. Seleziona il database

    use DbName;
    
  5. Fornire il nome del file

    \.DbName.sql
    

  1. Apri la riga di comando di MySQL
  2. Digita il percorso della tua directory mysql bin e premi Invio
  3. Incolla il tuo file SQL all'interno della cartella bin del server mysql.
  4. Crea un database in MySQL.
  5. Utilizzare quel particolare database in cui si desidera importare il file SQL.
  6. Digitare source databasefilename.sql e Invio
  7. Il tuo caricamento di file SQL con successo.

Aggiungi l' opzione --force :

mysql -u username -p database_name --force < file.sql

Ai fini del backup, creare un file BAT ed eseguire questo file BAT utilizzando l' Utilità di pianificazione . Ci vorrà un backup del database; copia semplicemente la seguente riga e incolla il Notepad quindi salva il file .bat ed eseguilo sul tuo sistema.

@echo off
for /f "tokens=1" %%i in ('date /t') do set DATE_DOW=%%i
for /f "tokens=2" %%i in ('date /t') do set DATE_DAY=%%i
for /f %%i in ('echo %date_day:/=-%') do set DATE_DAY=%%i
for /f %%i in ('time /t') do set DATE_TIME=%%i
for /f %%i in ('echo %date_time::=-%') do set DATE_TIME=%%i

"C:\Program Files\MySQL\mysql server 5.5\bin\mysqldump" -u username -ppassword mysql>C:/%DATE_DAY%_%DATE_TIME%_database.sql

Fornire credenziali sulla riga di comando non è una buona idea. Le risposte di cui sopra sono grandiose, ma trascurate di menzionare

mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql

Dove etc / myhost.cnf è un file che contiene host, utente, password ed evita di esporre la password sulla riga di comando. Ecco un esempio,

[client]
host=hostname.domainname
user=dbusername
password=dbpassword

Ho continuato a correre nel problema in cui il database non è stato creato.

L'ho risolto così

mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql

I seguenti passaggi aiutano a caricare file.sql nel database MySQL.

Passaggio 1: file.sql.zip in qualsiasi directory e decomprimi lì
Nota : sudo apt-get install unzip : sudo apt-get unzip file.sql.zip
Passaggio 2: ora vai a quella directory. Esempio: cd /var/www/html

Passaggio 3: mysql -u username -p database-name < file.sql
Inserisci la password e attendi fino al termine del caricamento.


Il seguente comando funziona per me dalla riga di comando (cmd) su Windows 7 su WAMP .

d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql

Non è necessario specificare il nome del database sulla riga di comando se il file .sql contiene CREATE DATABASE IF NOT EXISTS db_name e USE db_name statements.

Assicurati solo di connetterti con un utente che ha le autorizzazioni per creare il database, se il database menzionato nel file .sql non esiste.


Penso che valga la pena ricordare che puoi caricare anche un file compresso con zcat con zcat come mostrato di seguito:

zcat database_file.sql.gz | mysql -u username -p -h localhost database_name

Per importare un singolo database, utilizzare il seguente comando.

mysql -u username -p password dbname < dump.sql

Per importare più dump di database, utilizzare il seguente comando.

mysql -u username -p password < dump.sql

Per informazione ho appena avuto il root predefinito + senza password, non ha funzionato con tutte le risposte di cui sopra.

  • Ho creato un nuovo utente con tutti i privilegi e una password. Funziona.

  • -ipassword SENZA SPAZIO.


Per scaricare un database in un file SQL, utilizzare il seguente comando

mysqldump -u username -p database_name > database_name.sql

Per importare un file SQL in un database (assicurarsi di essere nella stessa directory del file SQL o fornire il percorso completo del file)

mysql u -username -p database_name < database_name.sql

Possiamo usare questo comando per importare SQL dalla riga di comando:

mysql -u username -p password db_name < file.sql

Ad esempio, se il nome utente è root e la password è password . E hai un nome di database come bank e il file SQL è bank.sql . Quindi, fai semplicemente così:

mysql -u root -p password bank < bank.sql

Ricorda dove si trova il tuo file SQL. Se il tuo file SQL si trova nella cartella / cartella Desktop vai alla directory desktop e inserisci il comando in questo modo:

~ ? cd Desktop
~/Desktop ? mysql -u root -p password bank < bank.sql

E se sei nella directory Project e il tuo file SQL è nella directory Desktop . Se vuoi accedervi dalla directory del Project , puoi fare così:

~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql

Se si dispone già del database, utilizzare quanto segue per importare il dump o il file sql

mysql -u username -p database_name < file.sql

se non è necessario creare il database pertinente (vuoto) in MySQL, per il primo accesso alla console MySQL eseguendo il seguente comando nel terminale o in cmd

mysql -u userName -p;

e quando richiesto fornire la password.

Quindi crea un database e usalo

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

Quindi importare il file sql o dump nel database da

mysql> source pathToYourSQLFile;

Nota: se il terminale non si trova nel percorso in cui è presente il dump o il file sql , utilizzare il percorso relativo in alto.


Sto usando Windows 10 con Powershell 5 e ho trovato quasi tutte le soluzioni "unix-like" che non funzionano per me.

> mysql -u[username] [database-name] < my-database.sql
At line:1 char:31
+ mysql -u[username] [database-name] < my-database.sql
+                               ~
The '<' operator is reserved for future use.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : RedirectionNotSupported

Finisco per usare questo comando.

> type my-database.sql | mysql -u[username] -h[localhost] -p [database-name]

e funziona perfettamente, speriamo che aiuti.

Grazie alla @ answer btw.


Un uso comune di mysqldump è per fare un backup di un intero database:

shell> mysqldump db_name > backup-file.sql

È possibile caricare nuovamente il file di dump nel server in questo modo:

UNIX

shell> mysql db_name < backup-file.sql

Lo stesso nel prompt dei comandi di Windows :

mysql -p -u [user] [database] < backup-file.sql

PowerShell

C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"

Riga di comando MySQL

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

Una soluzione che ha funzionato per me è qui sotto:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;

Vai alla directory in cui hai l'eseguibile MySQL. -u per username e -p per richiedere la password:

C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql

mysql --user=[user] --password=[password] [database] < news_ml_all.sql






import