Download del dump MySQL dalla riga di comando


306

Mi sto allontanando da Linode perché non ho le competenze di amministratore di sistema necessarie; prima di completare il passaggio a un servizio più intuitivo, devo scaricare i contenuti di un database MySQL. C'è un modo per farlo dalla riga di comando?



mysqldump è quello che stai cercando.
Faruk Sahin,

1
@AZinkey Penso che troverai la risposta accettata di quella copia del post e incollato il contenuto della mia risposta (parola per parola) nella prima parte della loro risposta mesi dopo ...
Nickhar

Risposte:


656

Puoi farlo usando la funzione della riga di comando di mysqldump .

Per esempio:

Se è un intero DB, quindi:

   $ mysqldump -u [uname] -p db_name > db_backup.sql

Se sono tutti i DB, quindi:

   $ mysqldump -u [uname] -p --all-databases > all_db_backup.sql

Se si tratta di tabelle specifiche all'interno di un DB, quindi:

   $ mysqldump -u [uname] -p db_name table1 table2 > table_backup.sql

Puoi persino arrivare a comprimere automaticamente l'output usando gzip (se il tuo DB è molto grande):

   $ mysqldump -u [uname] -p db_name | gzip > db_backup.sql.gz

Se vuoi farlo da remoto e hai accesso al server in questione, allora funzionerebbe quanto segue (presumendo che il server MySQL sia sulla porta 3306):

   $ mysqldump -P 3306 -h [ip_address] -u [uname] -p db_name > db_backup.sql

Dovrebbe rilasciare il .sqlfile nella cartella da cui si esegue la riga di comando.

EDIT: aggiornato per evitare l'inclusione di password nei comandi CLI, utilizzare l' -popzione senza la password. Ti verrà richiesto e non registrato.


1
La tua risposta insieme a stackoverflow.com/questions/2989724/… - Dovrebbe fare ciò che sta chiedendo, dal momento che ha incluso ha bisogno di scaricarlo. È quello o un wgeto scpsarà necessario per recuperare il file una volta creato.
Zak,

47
Piccola nota che è più sicuro non inserire la password nel comando. Solo usando l'opzione -p senza password verrà richiesta la password quando eseguita, in questo modo la password non viene memorizzata nella cronologia dei comandi (e potenzialmente recuperata). Quindi usando il seguente comando: mysqldump -P 3306 -h [indirizzo_ip] -u [uname] -p nome_db> db_backup.sql
Pitt

3
Invece di usare >per salvare, preferisco usare -rper prevenire problemi con i caratteri stranieri o quell'incubo relativo ai problemi di codifica, come affermato in questo articolo .
Pathros,

1
Per dataase di grandi dimensioni / attivamente aggiornati, utilizzare il parametro --single-transazione. Questo crea un checkpoint e aiuta a garantire la coerenza. Inoltre, usa gli switch --routines --triggers, se hai memorizzato procedure / funzioni / trigger
accord_guy

1
Dovresti usare --result-file=db_backup.sqlinvece di > db_backup.sql. Citazione dalla documentazione MySQL : "UTF-16 non è consentito come set di caratteri di connessione (consultare Set di caratteri client non consentiti ), quindi il file di dump non verrà caricato correttamente. Per aggirare questo problema, utilizzare l' --result-fileopzione, che crea l'output in Formato ASCII ".
Martin Braun,

13

Nelle ultime versioni di mysql, almeno nella mia, non puoi inserire direttamente il tuo passaggio nel comando.

Devi correre:

mysqldump -u [uname] -p db_name > db_backup.sql

e quindi chiederà la password.


2
rimuovere lo spazio tra l' -popzione e la password effettiva fa il trucco
y2k-shubham

8

Se si scarica da un server remoto, ecco un semplice esempio:

mysqldump -h my.address.amazonaws.com -u my_username -p db_name > /home/username/db_backup_name.sql

-P indica che inserirai una password, non si riferisce al nome_db. Dopo aver inserito il comando ti verrà richiesta la password. Digita e premi invio.


5

Su Windows devi specificare il cestino mysql in cui risiede mysqldump.exe.

cd C:\xampp\mysql\bin

mysqldump -u[username] -p[password] --all-databases > C:\localhost.sql

salvalo in un file di testo come backup.cmd


o di solito avendo mysql nella tua variabile PATH in modo da poter eseguire mysqlcomandi da qualsiasi luogo senza essere nella sua directory.
behz4d,

2

Apri il prompt dei comandi e digita direttamente questo comando. Non entrare in mysql e quindi digitare questo comando.

mysqldump -u [uname] -p[pass] db_name > db_backup.sql

1
Copiare la prima riga di codice dalla risposta accettata su una domanda di 5 anni è una strategia audace per l'agricoltura del karma.
Phillip Copley,

Ho provato questo comando MySQLdump nel prompt di Mysql e non ha funzionato. quindi
ho

2

Vai alla directory di installazione di MySQL e apri cmd da lì. Quindi eseguire il comando seguente per ottenere un backup del database.

mysqldump -u root -p --add-drop-database --databases db> C:\db-dontdelete\db.sql

1

Basta digitare mysqldumpo mysqldump --helpnel tuo cmd mostreràhow to use

Ecco il mio risultato cmd

C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

1

Se stai eseguendo MySQL diverso dalla porta predefinita:

mysqldump.exe -u username -p -P PORT_NO database > backup.sql

1

Per coloro che vogliono digitare la password nella riga di comando. È possibile ma consiglia di passarlo tra virgolette in modo che il carattere speciale non causi alcun problema.

mysqldump -h'my.address.amazonaws.com' -u'my_username' -p'password' db_name > /path/backupname.sql

-1

Usa questo Se hai il database con il nome archiedb, usa questo mysql -p --database archiedb> /home/database_backup.sql

Supponendo che questo sia Linux, scegli dove verrà salvato il file di backup.


shell> mysqldump -p mypassword --database mydb> /home/backup.sql.
Nabaasa Archie,

-1

Per gli utenti Windows è possibile accedere alla cartella mysql per eseguire il comando

per esempio

cd c:\wamp64\bin\mysql\mysql5.7.26\bin
mysqldump -u root -p databasename > dbname_dump.sql

1
La domanda suggeriva che MySQL fosse in esecuzione su Linux.
gmauch,

-1

Nota: questo passaggio arriva solo dopo aver scaricato il tuo file MySQL (a cui hanno risposto la maggior parte delle risposte sopra).

Presuppone che tu abbia il suddetto file di dump nel tuo server remoto e ora vuoi portarlo sul tuo computer locale.

Per scaricare il .sqlfile scaricato dal tuo server remoto sul tuo computer locale, esegui

scp -i YOUR_SSH_KEY your_username@IP:name_of_file.sql ./my_local_project_dir
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.