Torsten Witt MySQL www.wissen4free.org SQL-Dump anlegen und einspielen Wer seine Datenbank sichern möchte, macht dies im klassischen Fall mit einem SQL-Dump. Ich zeige verschiedene Wege diesen zu erzeugen und einzuspielen. Es kann sein, dass das Einspiele des Dumps unter Umständen in einer ältern MySQL-Version problematisch ist. Konsole Wer MySQL fern administriert oder sonst der Konsole nicht abgeneigt ist findet hier den richtigen Weg. Übrigens auch ideal um einen Cronjob/geplanten Task zu erzeugen. Dump erstellen Hierzu muss das Tool mysqlump zur Verfügung stehen. Dies wird in der Regel mitgeliefert. Linux/Unix: mysqldump --user=Username --password=Passwort Datenbankname > /Pfad/zu/Datei.sql Windows: mysqldump --user=Username --password=Passwort Datenbankname > c:\Pfad\zu\Datei.sql Tipp: Damit das Einspielen ohne Fehler abläuft, empfehle ich folgenden Aufruf, um einen erweiterten Insert zu verhindern. Siehe dazu 3.1.Dump erstellen. mysqldump --extended-insert=FALSE -c --user=Username --password=Passwort Datenbankname > c:\Pfad\zu\Datei.sql alle Datenbanken: mysqldump --user=Username --password=Passwort -A > /Pfad/zu/Datei.sql mehrere bestimmte Datenbanken: mysqldump --user=Username --password=Passwort --databases Datenbank1 Datenbank2 Datenbank3 > /Pfad/zu/Datei.sql Dump einspielen Beim Einspielen sollte man vielleicht darauf achten, egal wie der Dump erstellt wurde, ob dabei eine Datenbank angelegt wird oder nicht. Falls keine create database-Anweisung enthalten ist, muss die Datenbank vorher angelegt werden. mysql --user=Username --password=Passwort Datenbankname < c:\Pfad\zu\Datei.sql Seite 1/3 Torsten Witt MySQL www.wissen4free.org phpMyAdmin Mittels phpMyAdmin ist es möglich den Dump und sonstige SQL-Abfragen (Insert, Updates, Status, etc) bequem im Browser zu machen. In meinem Beispiel habe ich Version 3.2.4 verwendet. Die Handhabung ist bei neueren Versionen genauso. Achtung! Bei sehr großen Datenbanken, kann es zu einem Abbruch kommen, wenn die Laufzeit für PHP-Anwendungen zu kurz konfiguriert ist. Standard sind 30 Sekunden. Dump erstellen Wechseln in das Menü Exportieren. Zunächst die Datenbank auswählen und die Standardeinstellung SQL als Format sollte beibehalten werden. Wer bei der Auswahl der Datenbanken nur eine Datenbank angezeigt bekommt anstatt alle, der muss vorher in die Gesamtübersicht wechseln. Im Bereich Daten empfehle ich den Haken für Erweiterte INSERT´s zu entfernen. Der Hintergrund ist, dass die MySQL-Konfigurationsvariable max_allowed_packet eventuell durch die aktuelle Einstellung der Maximale Länge der Abfrage zu klein ist. Standardmäßig ist sie auf 1 MB gestellt. Bei Importen von sehr großen Datenbanken kann dies zu viel sein, denn die Einstellung bewirkt, dass alle Daten mittels einer einzigen SQL-Statement eingetragen werden. Beim Bereich Senden, sollte Gzip-komprimiert gewählt werden. So wird die Datei möglichst klein. Für die Zeichenkodierung empfehle ich UTF-8. Dump einspielen Zum Einspielen des Dumps muss in das Menü Importieren gewechselt werden. Achtung!!! Es kann passieren, dass der Dump zu groß ist. Hier muss eventuell phpMyAdmin bzw. PHP konfiguriert werden. Tipp: Es ist in der Regel unkomplizierte einen großen Dump zu erzeugen als ihn per phpMyAdmin einzuspielen. Daher rate ich für ungeübte Nutzer zu folgender Kombination: Seite 2/3 Torsten Witt – – MySQL www.wissen4free.org Dump mit phpMyAdmin erstellen über die Konsole zu importieren Seite 3/3