programmieren:php:programme:backup_mysql
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);
programmieren:php:programme (479 views) · Zuletzt geändert: 29/01/2022 11:34 von conny