multiple - ubuntu mysql import sql file to database




MySQL: Wie exportiere und importiere ich eine.sql Datei von der Kommandozeile? (6)

Ich möchte eine .sql-Datei zu und von einer MySQL-Datenbank von der Befehlszeile exportieren und importieren.

Gibt es einen Befehl zum Exportieren von .SQL-Datei in MySQL? Wie importiere ich es dann?

Beim Importieren können Einschränkungen wie Aktivieren / Deaktivieren der Fremdschlüsselprüfung oder Exportieren nur der Tabellenstruktur auftreten .

Können wir diese Optionen mit mysqldump einstellen?


Exportieren

Wenn es eine ganze DB ist, dann:

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

Wenn es alle DBs sind, dann:

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

Wenn es sich um bestimmte Tabellen in einer Datenbank handelt, dann:

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

Sie können sogar die Ausgabe mit gzip automatisch komprimieren (wenn Ihre DB sehr groß ist):

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

Wenn Sie dies remote durchführen möchten und Zugriff auf den betreffenden Server haben, würde Folgendes funktionieren (vorausgesetzt, der MySQL-Server befindet sich auf Port 3306):

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

Importieren

Geben Sie den folgenden Befehl ein, um die SQL-Datendatei zu importieren:

$ mysql -u username -p -h localhost DATA-BASE-NAME < data.sql

In diesem Beispiel importieren Sie die Datei "data.sql" in die Datenbank "blog" mit dem Benutzernamen "sat":

$ mysql -u sat -p -h localhost blog < data.sql

Wenn Sie einen dedizierten Datenbankserver haben, ersetzen Sie den Hostnamen localhost durch den tatsächlichen Servernamen oder die IP-Adresse wie folgt:

$ mysql -u username -p -h 202.54.1.10 databasename < data.sql

ODER verwenden Sie einen Hostnamen wie mysql.cyberciti.biz

$ mysql -u username -p -h mysql.cyberciti.biz database-name < data.sql

Wenn Sie nicht wissen, dass der Datenbankname oder der Datenbankname in sql dump enthalten ist, können Sie Folgendes ausprobieren:

$ mysql -u username -p -h 202.54.1.10 < data.sql

Siehe: http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html

Wenn Sie ein GUI-Tool möchten, könnten Sie wahrscheinlich SQLyog verwenden


Da ich nicht genügend Reputation habe um nach dem höchsten Post zu kommentieren, füge ich hier hinzu.

verwende '|' auf der Linux-Plattform, um Speicherplatz zu sparen.

thx @Hariboo, füge Events / Trigger / routints Parameter hinzu

mysqldump -x -u [uname] -p[pass]  -C --databases db_name  --events --triggers --routines | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/ '  | awk '{ if (index($0,"GTID_PURGED")) { getline; while (length($0) > 0) { getline; } } else { print $0 } }'  | grep -iv 'set @@' | trickle -u 10240 mysql -u username -p -h localhost DATA-BASE-NAME

einige Probleme / Tipps:

Fehler: ...... nicht vorhanden, wenn LOCK TABLES verwendet wird

# --lock-all-tables,-x , this parameter is to keep data consistency because some transaction may still be working like schedule.
# also you need check and confirm: grant all privileges on *.* to [email protected]"%" identified by "Passwd";

Fehler 2006 (HY000) in Zeile 866: MySQL-Server ist weggegangen mysqldump: Errno 32 beim Schreiben erhalten

# set this values big enough on destination mysql server, like: max_allowed_packet=1024*1024*20
# use compress parameter '-C'
# use trickle to limit network bandwidth while write data to destination server

FEHLER 1419 (HY000) in Zeile 32730: Sie verfügen nicht über das SUPER-Privileg und binäre Protokollierung ist aktiviert ( möglicherweise möchten Sie die weniger sichere log_bin_trust_function_creators-Variable verwenden)

# set SET GLOBAL log_bin_trust_function_creators = 1;
# or use super user import data

FEHLER 1227 (42000) in Zeile 138: Zugriff verweigert; Sie benötigen (mindestens eines der) SUPER Privileg (e) für diese Operation mysqldump: Errno 32 beim Schreiben

# add sed/awk to avoid some privilege issues

Ich hoffe das hilft!


Geben Sie den folgenden Befehl ein, um die SQL-Datendatei zu importieren:

$ mysql -u username -p -h localhost DATA-BASE-NAME < data.sql

In diesem Beispiel importieren Sie die Datei "data.sql" in die Datenbank "blog" mit vivek als Benutzernamen:

$ mysql -u vivek -p -h localhost blog < data.sql

Wenn Sie einen dedizierten Datenbankserver haben, ersetzen Sie den Hostnamen localhost durch den tatsächlichen Servernamen oder die IP-Adresse wie folgt:

$ mysql -u username -p -h 202.54.1.10 databasename < data.sql

Verwenden Sie Folgendes, um eine Datenbank zu exportieren:

mysqldump -u username -p databasename > filename.sql

Beachten Sie die < und > Symbole in jedem Fall.


Nun können Sie den Befehl unten verwenden, um zu exportieren,

mysqldump --database --user = root --kennwort dein_db_name> export_into_db.sql

und die generierte Datei wird im selben Verzeichnis verfügbar sein, in dem Sie diesen Befehl ausgeführt haben.

Logge dich nun mit dem Befehl in mysql ein,

mysql -u [Benutzername] -p

Verwenden Sie dann den Befehl "source" mit dem Dateipfad.

Sie können mehr finden auf: Import Export MySQL DB

Genießen :)


Versuchen

mysqldump databaseExample > file.sql

Wenn Sie die SQL-Shell bereits ausführen, können Sie den Befehl source , um Daten zu importieren:

use databasename;
source data.sql;




sqlcommand