Inhaltsverzeichnis

MySQL Datenbank Backup / sichern


Um die SQL Datenbank per Script zu sichern, ist dieses wohl die schnellste Methode.
Jedoch muss vom Provider die „EXEC“ Funktion freigeschaltet sein.

backup_mysqldump.php
<?php
$db_name = "dbName";  // Name der Datenbank
$db_passwd = "pass";  // Passwort der Datenbank
$sql_file = "dump_" . $db_name . "_" . date('Ymd_Hi') . ".sql";  // Name (Verzeichnis) der Datensicherung
 
exec("mysqldump -u $db_name -p'$db_passwd' --quick --allow-keywords --add-drop-table --complete-insert --quote-names $db_name >$sql_file");   // Datensicherung erstellen
exec("gzip $sql_file");  // Datensicherung packen
?>

Alternativ kann man auch mit „passthru“ die Datensicherung machen:

backup_mysql.php
<?php
$dbhost = '127.0.0.1';  // IP oder localhost
$dbuser = 'dbUser';     // Datenbank User
$dbpassword = 'dbPass'; // Passwort
$dbname = 'dbName';     // Datenbank Name
$dumpfile = 'backup_' . $dbname . '_' . date("Y-m-d_H-i-s") . '.sql.gz';  // Name der Sicherungsdatei
 
echo "Start dump\n";
passthru("mysqldump --user=$dbuser --password=$dbpassword --host=$dbhost $dbname | gzip -c  > $dumpfile");
echo "-- Dump completed -- ";
echo $dumpfile;
?>

MySQL Datenbank Backup einlesen / importieren

download
<?php
/**
 * Programm zum Einspielen einer Datenbank Sicherung von z.B. PHPMYADMIN
 *
 *
 */
echo "<h2>Datenbank Sicherung importieren</h2>";
 
$db_name = "No1sql13";      // Name der Datenbank
$db_passwd = "cdaeLElyhk";  // Passwort der Datenbank
$sql_file = "No1sql5.sql";  // Name der Datensicherung
 
// Wenn Datei gepackt ist, dann erst mal entpacken
if (file_exists($sql_file.".gz")) {
    echo "entpacken ...";
    uncompress($sql_file.".gz",$sql_file);
}
 
echo "Daten importieren:"
exec("mysql -u $db_name -p'$db_passwd' $db_name <$sql_file");
 
// Enpacken Function für GZ Files
function uncompress($srcName, $dstName) {
    $sfp = gzopen($srcName, "rb");
    $fp = fopen($dstName, "w");
 
    while (!gzeof($sfp)) {
        $string = gzread($sfp, 4096);
        fwrite($fp, $string, strlen($string));
    }
    gzclose($sfp);
    fclose($fp);
}
?>

MySQL Datenbank duplizieren / kopieren

db_dub.php
<?php
/**
 * Kopiert eine vorhandene Datenbank in eine neue Datenbank - funktioniert nur wenn der EXEC Befehl vom Hoster freigegeben ist
 * Achtung ! - Wenn die neue Datenbank bereits vorhanden ist, wird diese vorher gelöscht. ('DROP DATABASE IF EXISTS `)
 */
 
//Source\\
$DB_USER_SRC = "<username>";
$DB_PASS_SRC = "<passwort>";
$DB_NAME_SRC = "<exist DB name>"; 
 
//Destination
$DB_USER_DEST = "<username>";
$DB_PASS_DEST = "<passwort>";
$DB_NAME_DEST = "<new DB name>";
 
//— ab hier nichts mehr ändern —
// erstellt eine neue, leere DB. Wenn Sie schon vorhanden ist, wird sie gelöscht.
exec("mysql -u".$DB_USER_DEST." –password='".$DB_PASS_DEST."' -e 'DROP DATABASE IF EXISTS `".$DB_NAME_DEST."`; CREATE DATABASE `".$DB_NAME_DEST."`;'");
 
//kopiert den Inhalt der vorhanden DB in die neue DB
exec("mysqldump -u".$DB_USER_SRC." -p'".$DB_PASS_SRC."' ".$DB_NAME_SRC." | mysql -u ".$DB_USER_DEST." –password='".$DB_PASS_DEST."' ".$DB_NAME_DEST);

Komplettes Script: https://all-inkl.com/wichtig/anleitungen/datensicherung/mysql/php-skript-zum-sichern-und-wiederherstellen-einer-datenbank/dump-erstellen-mit-e-mail-benachrichtigung_85.html