Nicht immer geht es über eine hübsche Klicki-Bunti Oberflächen wie PhpMyAdmin oder Adminer, dass wir MySQL-Datenbanken (oder MariaDB-Datenbanken, die auf MySQL als Fork aufsetzen) exportieren und importieren können. Für kleine Datenbanken unter 20 MB groß mag dies vielleicht nocht gehen, aber bei bspw. 3GB wird es hier schon schwierig. Auch wenn Tools wie MySQLDumper schon sehr in die Jahre gekommen sind (die Meisten werden nicht mehr aktiv weiterentwickelt), aber dennoch funktionieren, gibt es eine einfachere Variante, sofern Zugriff auf die Konsole via SSH oder direkt besteht.
Eine bestimmte MySQL Datenbank exportieren
mysqldump -u benutzername -p datenbankname > dump.sql
Die Struktur einer MySQL Datenbank mit exportieren
mysqldump -u benutzername -p --no-data datenbankname > dump.sql
Die Daten aus einer MySQL Datenbank exportieren
mysqldump -u benutzername -p --no-create-info datenbankname > dump.sql
Mehrere MySQL Datenbanken exportieren
mysqldump -u benutzername -p --databases datenbankname1 [datenbankname2 ...] > dump.sql
Alle MySQL Datenbanken exportieren
mysqldump -u benutzername -p --all-databases > dump.sql
MySQL Datenbanken importieren
mysql -u benutzername -p datenbankname < dump.sql
SQL-Dumps komprimieren
Da die SQL-Dumps sehr groß werden können und nur reiner Text sind, können sie sehr einfach auf einen Bruchteil mit einem Komprimierungsprogram wie gzip mit „gzip dump.sql“ reduziert werden. Bei einem SQL-Dump von 2 GB, sind nach Komprimierung mit gzip nur noch knapp 175 MB übrig geblieben. Mit dem Programm gunzip können die Archive dann wieder entpacht werden: „gunzip dump.sql.gz“.
Ist der SQL-Dump erfolgreich exportiert und komprimiert kann er beispielsweise mittels SCP, SFTP oder vielen weiteren Möglichkeiten, wie auch dem Ablegen in einem Public-Verzeichnis, auf den Zielserver / Datenbank gelangen. Den Dump sollte man nur nicht im Public-Verzeichnis vergessen, sonst wird es peinlich.
Zeige Kommentare (4)
Ich packe die Dumps direkt beim Schreiben in gzip-Archive und entpacke dann auch live aus diesen um die Dumps zurück zu spielen. Spart jede Menge Platz auf der Festplatte :)
mysqldump -u user -p database | gzip > database.sql.gz
gunzip < database.sql.gz | mysql -u user -p database
Vielen Dank für die Anleitung! Wir bauen gerade unsere Seite um und war genau das was wir gesucht haben
Guten Tag,
Sehr guter Artikel, übersichtlich und schlicht.
Dankeschön für die Anleitung
Mit freundlichen Grüßen,
Erwin
Oder über zcat - OSX
zcat < [Datenbank].sql.gz | mysql -u root -p [Datenbankname]