Benutzer-Werkzeuge

Webseiten-Werkzeuge


programmieren:php:programme:backup_mysql

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);
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
programmieren:php:programme (53 views) · Zuletzt geändert: 21/10/2021 16:17 von conny