MySQL Datenbank über Konsole exportieren und importieren

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. 

 

Die Struktur einer MySQL Datenbank mit exportieren

    mysqldump -u benutzername -p datenbankname > dump.sql

Die Daten aus einer MySQL Datenbank exportieren

    mysqldump -u benutzername -p --no-data datenbankname > dump.sql

Mehrere MySQL Datenbanken exportieren

    mysqldump -u benutzername -p --no-create-info datenbankname > dump.sql

Alle MySQL Datenbanken exportieren

    mysqldump -u benutzername -p --databases datenbankname1 [datenbankname2 ...] > dump.sql

MySQL Datenbanken importieren

    mysqldump -u benutzername -p --all-databases > 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.