Ho un database abbastanza grande, quindi voglio esportarlo usando il Prompt dei comandi, ma non so come farlo.
Sto usando WAMP.
Ho un database abbastanza grande, quindi voglio esportarlo usando il Prompt dei comandi, ma non so come farlo.
Sto usando WAMP.
Risposte:
Prima controlla se la tua riga di comando riconosce il comando mysql. Altrimenti vai al comando e digita:
set path=c:\wamp\bin\mysql\mysql5.1.36\bin
Quindi utilizzare questo comando per esportare il database:
mysqldump -u YourUser -p YourDatabaseName > wantedsqlfile.sql
Verrà quindi richiesta la password del database .
In questo modo il database viene esportato nel percorso in cui ci si trova attualmente, durante l'esecuzione di questo comando
Nota: ecco alcune istruzioni dettagliate relative sia all'importazione che all'esportazione
-p
e thepassword
.
-p
e quindi ti verrà richiesta la password. In questo modo si evita di salvare la password, ad es. A.bash_history
Usa semplicemente il seguente comando,
Per l'esportazione:
mysqldump -u [user] -p [db_name] | gzip > [filename_to_compress.sql.gz]
Per importazione:
gunzip < [compressed_filename.sql.gz] | mysql -u [user] -p[password] [databasename]
Nota: non c'è spazio tra la parola chiave '-p' e la password.
gzip -9
rende il file risultante un po 'più piccolo, poiché viene utilizzata la compressione massima.
Prima di tutto apri il prompt dei comandi quindi apri la directory bin in cmd (spero che tu sia a conoscenza dei comandi cmd ) vai alla directory bin della tua cartella MySql nei file di programma WAMP .
esegui comando
mysqldump -u db_username -p database_name > path_where_to_save_sql_file
premere invio per esportare un determinato database e creare un file sql nella posizione specificata.
spero che tu l'abbia :) se hai qualche domanda per favore fatemelo sapere.
Bene, puoi usare il comando seguente,
mysqldump --databases --user=root --password your_db_name > export_into_db.sql
e il file generato sarà disponibile nella stessa directory in cui era stato eseguito questo comando.
Puoi trovare ulteriori informazioni sul riferimento ufficiale per mysqldump
: Import Export MySQL DB
Nota : utilizzare --databases
invece di --database
poiché l'ultimo non è più supportato.
Godere :)
mysqldump: [ERROR] unknown option '--database'
ma l'esclusione --database
ha funzionato.
Vai al prompt dei comandi in questo percorso,
C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>
Quindi dare questo comando per esportare il database ( nessuno spazio dopo -p )
mysqldump -u[username] -p[userpassword] yourdatabase > [filepath]wantedsqlfile.sql
Individua la tua istanza mysql con:
which mysql
Se questo è corretto, esporta con il seguente (altrimenti vai all'istanza mysql nella tua cartella mamp nel cestino):
mysqldump -u [username] -p [password] [dbname] > filename.sql
E se desideri comprimerlo contemporaneamente:
mysqldump -u [username] -p [password] [db] | gzip > filename.sql.gz
È quindi possibile spostare questo file tra i server con:
scp user@xxx.xxx.xxx.xxx:/path_to_your_dump/filename.sql.gz your_detination_path/
(dove xxx.xxx.xxx.xxx è l'indirizzo IP del server)
E poi importalo con:
gunzip filename.sql.gz | mysql -u [user] -p [password] [database]
password
dalla riga di comando: mysqldump -u [username] -p [dbname]> nomefile.sql Questo impedisce alle persone di cercare la tua cronologia per la password.
mysqldump -u tutorials -p'mypassword' -h 127.0.0.1 database_name > file_backup_database_name_.sql
Avviso: l'uso di una password nell'interfaccia della riga di comando può essere insicuro.
Per esportare PROCEDURE, FUNZIONI e TRIGGER, aggiungi il --routines
parametro:
mysqldump -u YourUser -p YourDatabaseName --routines > wantedsqlfile.sql
--routines
fa la differenza :) Qualche suggerimento su come esportare solo PROCEDURE, FUNZIONI e TRIGGER? Per coloro che hanno dimenticato il passaggio ed esportato DB "puro" senza "algoritmi" :)
--events
è necessario per scaricare gli eventi di Event Scheduler e i TRIGGER vengono sempre esportati, a meno che non --skip-triggers
sia specificato (secondo 7.4.5.3 Dumping Stored Programs )
Dai questo comando per esportare il tuo database, questo includerà anche la data
mysqldump -u[username] -p[userpassword] --databases yourdatabase | gzip > /home/pi/database_backup/database_`date '+%m-%d-%Y'`.sql.gz
(nessuno spazio dopo -p)
--databases
inserirai istruzioni come CREATE DATABASE XYZ;
e USE XYZ;
, il che non è utile quando si importa l'SQL in un altro DB con un altro nome ...
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 and select the currently working mysql version on your server if you have more than one mysql versions)
D:\wamp\bin\mysql\mysql5.5.8>cd bin
D:\wamp\bin\mysql\mysql5.5.8\bin>mysqldump -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 in cui 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
-p
e password
?
mysqldump -h [host] -p -u [user] [database name] > filename.sql
Esempio in localhost
mysqldump -h localhost -p -u root cookbook > cookbook.sql
Il problema con tutte queste soluzioni (utilizzando il >
carattere redirector) è che si scrive il dump da stdout che potrebbe interrompere la codifica di alcuni caratteri del database.
Se hai un problema di codifica dei caratteri. Ad esempio :
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 ...
quindi, DEVI utilizzare l' -r
opzione per scrivere il file.
MySQL
mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump.sql
Utilizzando Docker
docker exec --rm -v $pwd:dump -it mysql:5:7 mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump/dump.sql
Nota: questo monta il percorso corrente come dump all'interno dell'istanza.
Abbiamo trovato la risposta qui
Al contrario, non utilizzare <
per importare il dump nel database, di nuovo, i caratteri non utf8 potrebbero non essere passati; ma preferisci l'opzione sorgente.
mysql -u user -pYourPasswordYouNowKnowHow --default-character-set=utf8 your-database
mysql> SET names 'utf8'
mysql> SOURCE dump.sql
(mysqldump.exe full path) -u (user name) -p (password) (database name) > (export database file full path)
c:>d:\wamp\bin\mysql\mysql5.6.12\bin\mysqldump.exe -u root -p mydbname > d:\mydb.sql
dove d: \ wamp \ bin \ mysql \ mysql5.6.12 \ bin \ mysqldump.exe sarà il tuo vero percorso mysqldump.exe, mydbname è il nome del database che vuoi esportare e d: \ mydb.sql è il percorso dove si desidera archiviare il database esportato.
Ho usato il server Wamp. Ci ho provato
c:\wamp\bin\mysql\mysql5.5.8\bin\mysqldump -uroot -p db_name > c:\somefolder\filename.sql
root
è il mio nome utente per mysql e se si dispone di una password, specificarlo con:
-p[yourpassword]
Spero funzioni.
Per sistema operativo Windows :
Quando viene visualizzato l'errore 1064 mysql (42000) durante il tentativo di eseguire il comando mysqldump , uscire dal terminale corrente. Ed esegui il comando mysqldump.
mysql>exit
c:\xampp\mysql\bin>mysqldump -uroot -p --databases [database_name] > name_for_export_db.sql
Stavo cercando di prendere il dump del db che era in esecuzione sulla finestra mobile e ho trovato il comando seguente per ottenere lo stesso:
docker exec <container_id/name>
/ usr / bin / mysqldump -u <db_username>
--password = <db_password>
db_name
> .sql
Spero che questo ti aiuti!
È possibile utilizzare questo script per esportare o importare qualsiasi database dal terminale fornito a questo link: https://github.com/Ridhwanluthra/mysql_import_export_script/blob/master/mysql_import_export_script.sh
echo -e "Welcome to the import/export database utility\n"
echo -e "the default location of mysqldump file is: /opt/lampp/bin/mysqldump\n"
echo -e "the default location of mysql file is: /opt/lampp/bin/mysql\n"
read -p 'Would like you like to change the default location [y/n]: ' location_change
read -p "Please enter your username: " u_name
read -p 'Would you like to import or export a database: [import/export]: ' action
echo
mysqldump_location=/opt/lampp/bin/mysqldump
mysql_location=/opt/lampp/bin/mysql
if [ "$action" == "export" ]; then
if [ "$location_change" == "y" ]; then
read -p 'Give the location of mysqldump that you want to use: ' mysqldump_location
echo
else
echo -e "Using default location of mysqldump\n"
fi
read -p 'Give the name of database in which you would like to export: ' db_name
read -p 'Give the complete path of the .sql file in which you would like to export the database: ' sql_file
$mysqldump_location -u $u_name -p $db_name > $sql_file
elif [ "$action" == "import" ]; then
if [ "$location_change" == "y" ]; then
read -p 'Give the location of mysql that you want to use: ' mysql_location
echo
else
echo -e "Using default location of mysql\n"
fi
read -p 'Give the complete path of the .sql file you would like to import: ' sql_file
read -p 'Give the name of database in which to import this file: ' db_name
$mysql_location -u $u_name -p $db_name < $sql_file
else
echo "please select a valid command"
fi