Kategorie auswählen
Übersicht Hilfe Kontakt
print article

Backup/Wiederherstellung einer MySQL-Datenbank per PHP-Skript

Für 1&1 WebHosting Linux-Pakete mit MySQL-Datenbanken

Hier erfahren Sie, wie Sie eine SQL-Datensicherung (Dump) per PHP-Skript erstellen und in Ihre MySQL-Datenbank einspielen.

Möchten Sie größere Änderungen an Ihrer Internetpräsenz durchführen? Durch das Sichern Ihrer Datenbank können Sie bereits erfasste Daten schnell wieder am gewünschten Ort zur Verfügung stellen.

Bitte beachten Sie:
Oft liegen MySQL-Datenbank-Backups auch im Dateiformat .dump oder gepackt als .dump.gz vor. Die in dieser Anleitung angegebenen Befehle und Skripte funktionieren bei diesem Dateiformat ebenfalls.
Backup der Datenbankdaten per PHP-Skript

Folgendes PHP-Skript sichert den Datenbankinhalt in eine Datei im gzip-Format. Sie führen es durch den Aufruf der Internetadresse im Internet-Browser aus, z.B. im Format http://ihredomain.de/skriptname.php.


<?php
//Tragen Sie hier Ihre Datenbankinformationen ein und den Namen der Backup-Datei
$mysqlDatabaseName ='Datenbankname';
$mysqlUserName ='Benutzername';
$mysqlPassword ='Passwort';
$mysqlHostName ='dbxxx.db.1and1.com';
$mysqlExportPath ='Ihr-gewünschter-Dateiname.sql';

//Bei den folgenden Punkten bitte keine Änderung durchführen
//Export der Datenbank und Ausgabe des Status
$command='mysqldump --opt -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' > ~/' .$mysqlExportPath;
exec($command,$output=array(),$worked);
switch($worked){
case 0:
echo 'Die Datenbank <b>' .$mysqlDatabaseName .'</b> wurde erfolgreich im folgenden Pfad abgelegt <b>~/' .$mysqlExportPath .'</b>';
break;
case 1:
echo 'Es ist ein Fehler aufgetreten beim Exportieren von <b>' .$mysqlDatabaseName .'</b> zu <b>~/' .$mysqlExportPath .'</b>';
break;
case 2:
echo 'Es ist ein Fehler beim Exportieren aufgetreten, bitte prüfen Sie die folgenden Angaben: <br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr></table>';
break;
}
?>

Den Datenbanknamen (db), Benutzernamen (dbuser) und Hostnamen (host) finden Sie im 1&1 Control-Center unter Hosting > Datenbanken > MySQL. Das Passwort (dbpw) vergeben Sie bei der Ersteinrichtung Ihrer MySQL-Datenbank.

Übersicht Ihrer MySQL-Datenbanken im 1&1 Control-Center
Übersicht Ihrer MySQL-Datenbanken im 1&1 Control-Center
Bitte beachten Sie:
Falls Sie die Konfigurationsoption safe_mode = on verwenden, ist es notwendig, den Safemode für die Ausführung des Skriptes zu deaktivieren. Ältere Datenbanken können auch dbxx.puretec.de heißen.

Danach können Sie sich die Datei mit dem SQL-Dump per FTP herunterladen. Sie finden diese im Verzeichnis DB_backup_of_ Ihrer Internetpräsenz.

Wiederherstellung (Restore) per PHP-Skript

Folgendes PHP-Skript liest den Inhalt eines SQL-Dumps im gzip-Format in die Datenbank ein. Der SQL-Dump befindet sich im Skript-Beispiel in der Datei dumpDB.sql.gz im DB_backup_of_ -Verzeichnis Ihrer Präsenz.

Führen Sie das Skript durch den Aufruf der Internetadresse im Internet-Browser aus, z.B. im Format http://ihredomain.de/skriptname.php.


<?php
//Tragen Sie hier Ihre Datenbankinformationen ein und den Namen der Backup-Datei
$mysqlDatabaseName ='Datenbankname';
$mysqlUserName ='Benutzername';
$mysqlPassword ='Passwort';
$mysqlHostName ='dbxxx.db.1and1.com';
$mysqlImportFilename ='Dateiname-des-Backups.sql';

//Bei den folgenden Punkten bitte keine Änderung durchführen
//Import der Datenbank und Ausgabe des Status
$command='mysql -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' < ' .$mysqlImportFilename;
exec($command,$output=array(),$worked);
switch($worked){
case 0:
echo 'Die DAten aus der Datei <b>' .$mysqlImportFilename .'</b> wurden erfolgreich eingespielt in der Datenbank <b>' .$mysqlDatabaseName .'</b>';
break;
case 1:
echo 'Beim Import ist ein Fehler aufgetreten. Bitte prüfe, ob die Datei im gleichen Ordner wie dieses Skript abgelegt ist. Prüfe auch die folgenden Daten noch einmal:<br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr><tr><td>MySQL Import Dateiname:</td><td><b>' .$mysqlImportFilename .'</b></td></tr></table>';
break;
}
?>

Falls durch die Größe Ihrer Datenbank das Skript an die Laufzeitbegrenzung stößt, können Sie den SQL-Dump auch per SSH einspielen, wenn SSH in Ihrem Tarif verfügbar ist.