programmieren:php:programme:backup_mysql
Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
BackUp MySQL Datenbanken
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 $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 `) */ $DB_USER = "<username>"; $DB_PASS = "<passwort>"; $EXISTING_DB = "<exist DB name>"; $NEW_DB = "<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." --password='".$DB_PASS."' -e 'DROP DATABASE IF EXISTS `".$NEW_DB."`; CREATE DATABASE `".$NEW_DB."`;'"); // kopiert den Inhalt der vorhanden DB in die neue DB exec("mysqldump -u".$DB_USER." -p'".$DB_PASS."' ".$EXISTING_DB." | mysql -u ".$DB_USER." --password='".$DB_PASS."' ".$NEW_DB);
programmieren/php/programme/backup_mysql.1634312769.txt.gz · Zuletzt geändert: 15/10/2021 16:46 (Externe Bearbeitung)
