Um MySQL-Daten über die Befehlszeile zu sichern und wiederherzustellen, verwenden wir die Dienstprogramme mysqldump
und mysql
.
Vorzugsweise verwenden wir das bei der Installation von MySql angelegte Admin-Konto: hier ist es der Root-Benutzer.
MySQL-Backup
Es gibt verschiedene Arten von MySQL-Backups.
Sie können alle Datenbanken, eine einzelne Datenbank oder sogar bestimmte Tabellen aus einer oder mehreren Datenbanken sichern.
Um alle Datenbanken zu speichern, verwenden wir den folgenden Befehl:
mysqldump --user = my_user --password = my_password --all-databases> destination_file.sql
So sichern Sie eine bestimmte Datenbank:
mysqldump --user = my_user --password = my_password --databases database_name> destination_file.sql
So sichern Sie mehrere Datenbanken:
mysqldump --user = my_user --password = my_password --databases base_name_1 base_name_2> destination_file.sql
So speichern Sie eine bestimmte Tabelle:
mysqldump --user = my_user --password = my_password --databases db_name --tables table_name> destination_file.sql
So speichern Sie mehrere Tabellen:
mysqldump --user = my_user --password = my_password --databases database_name --tables table_name_1 table_name_2> destination_file.sql
Für alle diese Arten von MySQL-Backups sind die generierten Dateien in .sql. Das heißt, Sie können die gewünschte Erweiterung wie z. B. .txt einfügen. Es tut nichts zur Sache.
Die Dateien sind in Klartext lesbar und enthalten alle SQL-Befehle, um eine MySQL-Wiederherstellung durchführen zu können.
.sql-Dateien sind jedoch groß. Um Platz zu sparen, werden wir sie beim Speichern im Handumdrehen komprimieren.
MySQL-Backup komprimieren
Um die Daten zu komprimieren, verwenden wir sie gunzip
nach dem Aufruf von mysqldump.
Dies gibt Befehle wie:
mysqldump <Befehle> | gzip> Zieldatei.sql.gz
Beispiel mit dem vollständigen Backup-Befehl:
mysqldump --user = my_user --password = my_password --all-databases | gzip> Zieldatei.sql.gz
Beachten Sie, dass der mysql backup-Befehl bei dieser Methode eine einzelne komprimierte Datei erzeugt. die Quelldatei existiert nicht mehr.
MySQL-Wiederherstellung
Für die MySQL-Wiederherstellung verwenden wir den Befehl nicht mehr mysqldump
. Wir verwenden den Befehl mysql
.
Der mysql-Befehl liest eine Datei und stellt sie dann gemäß ihrem Inhalt und ihren Anweisungen wieder her.
Die MySQL-Wiederherstellung kann für alle Datenbanken oder für eine bestimmte Datenbank durchgeführt werden.
Beispiel ohne Datenbankunterscheidung:
mysql --user = my_user --password = my_password <source_file.sql
Ein weiteres Beispiel für die Wiederherstellung in einer bestimmten Datenbank:
mysql --user = my_user --password = my_password database_name <source_file.sql
Nun, da alles klar ist, können wir einen CRON-Task planen, um unsere Datenbanken in regelmäßigen Abständen zu sichern.