Ist eine vollständige Sicherung des MySQL-Datenbankservers über die Befehlszeile möglich?


7
$ mysqldump -h localhost -u username -p database_name > backup_db.sql

Ich kann die obige Zeile verwenden, aber es ist nur für eine Datenbank im Server. Kann ich eine vollständige Sicherung aller Datenbanken in einer Sicherungsdatei haben?

Oder gibt es einen Befehl, der diesen Prozess serialisiert?

so etwas wie unten (ich habe -all hinzugefügt, was höchstwahrscheinlich falsch ist):

$ mysqldump -u username -h localhost -p -all | gzip -9 > backup_db.sql.gz

Vielen Dank.

Antworten:


14

Verwenden Sie die Option --all-database, um alle Tabellen in allen Datenbanken zu sichern:

mysqldump -u username -h localhost -p --all-databases > all_databases.sql

Danke für die Antwort. mysql -u Benutzername -h localhost -p --all-Datenbanken | gzip -9> all_databases.sql.gz würde dann die Ausgabedatei komprimieren, oder?
Sinan

Übrigens heißt es: mysql: unbekannte Option '--all-database'
Sinan

Ich habe "mysql" für Sie in "mysqldump" geändert, tut mir leid! :)
Tommeh

1
und ja, "| gzip -9f> file.gz" leitet die SQL in eine gzip'ed-Datei weiter.
Tommeh

ok, funktioniert jetzt ... ich habe nicht bemerkt, dass du es geändert hast.
Sinan

4

Außerdem würde ich vorschlagen, eine my.cnf-Datei so einzurichten, dass Ihr Passwort in der Prozessliste nicht sichtbar ist. Überprüfen Sie dies heraus . Dies hilft Ihnen und verhindert, dass Ihre SQL-Datenbank von anderen Personen gehackt wird, die möglicherweise Zugriff auf Ihr System haben.


Dies hätte einen tollen Kommentar abgegeben.
anonymer Feigling

1

Ich würde LVM-Snapshots für Sicherungen "aller Datenbanken" vorschlagen, da die Sperrzeit wahrscheinlich hoch ist. Das angezeigte Fehlen einer Untersuchung der Verwendungszeichenfolge oder " man mysql<^M>/all" lässt mich jedoch das Gefühl haben, dass es möglicherweise unverantwortlich ist, einen solchen Vorschlag zu machen.

~$ 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
Verdammt, ich war 2009 snarky!
Bruno Bronosky
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.