zur « Themenübersicht Webmaster-Tricks
HTML_CSS - Sparte PHP
MySql-Datenbank mit PHP sichern
Eingetragen am 01.09.2009
Mit einem einfachen Klick eine gesamte Datenbank sichern, mit PHP einen MySql-Dump erstellen.
Bevor man umfangreiche Änderungen an einer Datenbank vornimmt, sollte man diese zuvor sichern. Überhaupt sollte von Zeit zu Zeit eine Datenbanksicherung durchgeführt werden.
Ich kann ein Lied davon singen, als bei einem Provider der Datenbankserver ausfiel und die Datenbank nicht wieder hergestellt werden konnte :-(
Warum mit PHP, wo es doch so feine Tools wie PhpMyAdmin gibt und viele Provider PhpMyAdmin von Haus aus installiert haben?
Einige Webanwendungen wie auch CMS-Systeme bringen dies auch standardmäßig mit.
Bei mir ist es so, dass ich keine Lust habe, mich erst irgendwo Einloggen zu müssen. Ich möchte meine Datenbank sofort nach einer Änderung sichern.
Interessant, wenn umfangreiche Eingaben gemacht worden sind und man anschließend einfach einen Link oder ein Form anklickt oder das Script am Ende einer Einleseroutine ablaufen läßt.
So geht`s:
Erstellt eine Datei z.B. dump.php worin Ihr folgenden Code eingebt:
exec("mysqldump
--host=Datenbankserver
--user=Nutzername
--password=Passwort
--opt Datenbankname > /HomepageScriptVerzeichnis/dump.sql");
?>
Ersetzt die blauen Angaben mit euren Zugangsdaten und entfernt die Zeilenumbrüche da sonst das Script nicht arbeitet! Bei Aufruf der dump.php wird im gleichen Verzeichnis die dump.sql erstellt. Diese könnt Ihr dann per FTP auf euren Rechner laden.
Diese Datei könnt ihr dann wieder einlesen.
Ein fertiges Script könnt ihr hier herunter laden:
download/dump.zip
Das Script läuft über einen Button und ihr erhaltet eine Meldung, ob die Sicherung erfolgreich war.
Tipps:
Kaum jemand kennt sein Homepageverzeichnis. Man könnte in einer PHP-Datei eine Fehlermeldung produzieren, hier wird dann der gesamte Pfad angegeben. Ist aber nicht wirklich professionell ;-)
Dafür gibt es aber auch einen PHP-Code. Erstellt eine Datei mit x-beliebigen Namen, darin fügt Ihr folgenden Code ein:
<?php phpinfo()?>
Hier wird euch die gesamte Serverkonfiguration angezeigt. Den Pfad zum Script findet ihr dann ziemlich weit unten unter PATH_TRANSLATED.
Beim späteren Import kann es bei alten Datenbanken mit MySql 4 zu Problemen mit dem Attribut auto_increment kommen. Dieses solltet Ihr vor dem Einlesen aus dem Dump löschen und nach erfolgreichem Einlesen später wieder in den entsprechenden Tabellen einsetzen. Bei MySql-Datenbanken ab Version 5 entstehen die Probleme nicht. Wer kann, sollte bei einem neuen Aufsetzen oder Einspielen der Datenbank gleich auf MySql 5 wechseln.
Achtet darauf, dass auf eurem Server die entsprechenden Rechte (766) für die Erstellung des Dumps gesetzt sind.
Beim Einlesen empfehle ich z.B. PhpMyAdmin, da das Einlesen per PHP für Ungeübte nicht unproblematisch sein kann.
Bisherige Kommentare: Kommentar schreiben»