MySQL Datenbanken einzeln sichern

Möchte man mittels “mysqldump” die einzelnen Datenbanken einer MySQL-Installation sicheren, so sähe das so für eine Datenbank in etwa so aus:

mysqldump -u root -p<passwort> --result-file=example.sql --databases example

Packt man das nun ein Skript, muss jede Tabelle von Hand in dieses Skript eintragen werden. Allerdings könnte man das ganze auch über den SQL Befehl “SHOW DATABASES” lösen und das ganze in ein automatisches Skript gießen. Auf der Webseite dev.mensfeld.pl findet man ein solches Skript. Ich habe das ganze kleineren Modifikationen unterzogen (so wird z.B. die “performance_schema” Tabelle nicht mitgesichert) und auf GitHub zur Verfügung gestellt.

2 Kommentare » Schreibe einen Kommentar

  1. Vielleicht sollte man noch erwähnen, so kommt das Passwort in die bash History, was eigentlich vermieden werden sollte. Also wenn man den Befehl direkt ausführt und nicht innerhalb eines Skriptes.

    In der Konsole kann man das Passwort auch weglassen, dann wird nachgefragt und nichts erscheint in der History:
    mysqldump -u root -p –result-file=example.sql –databases example

    Ich mache es so:
    mysqldump -u root datenbankname -p > pfad/file.sql

  2. Wenn man sich alle Datenbanken dumpen lassen will, kann man auch einfach »mysqldump -A« verwenden. Schreibt dann halt alles in eine Datei. Aber aus dieser kann man auch mit Hilfe von grep seine bestimmte Datenbank heraus holen.

    Gruß

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.