Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich eine MySQL-Datenbank in PHP sichern?

Sie können Sicherungsbefehle zwar von PHP aus ausführen, aber sie haben nicht wirklich etwas mit PHP zu tun. Es dreht sich alles um MySQL.

Ich würde vorschlagen, das Dienstprogramm mysqldump zu verwenden, um Ihre Datenbank zu sichern. Die Dokumentation finden Sie hier:http://dev.mysql. com/doc/refman/5.1/en/mysqldump.html .

Die grundlegende Verwendung von mysqldump ist

mysqldump -u user_name -p name-of-database >file_to_write_to.sql

Sie können die Sicherung dann mit einem Befehl wie

wiederherstellen
mysql -u user_name -p <file_to_read_from.sql

Hast du Zugriff auf cron? Ich würde vorschlagen, ein PHP-Skript zu erstellen, das mysqldump als Cron-Job ausführt. Das wäre so etwas wie

<?php

$filename='database_backup_'.date('G_a_m_d_y').'.sql';

$result=exec('mysqldump database_name --password=your_pass --user=root --single-transaction >/var/backups/'.$filename,$output);

if(empty($output)){/* no output is good */}
else {/* we have something to log the output here*/}

Wenn mysqldump nicht verfügbar ist, beschreibt der Artikel eine andere Methode, die SELECT INTO OUTFILE verwendet und LOAD DATA INFILE Befehle. Die einzige Verbindung zu PHP besteht darin, dass Sie PHP verwenden, um eine Verbindung zur Datenbank herzustellen und die SQL-Befehle auszuführen. Sie können dies auch über das Befehlszeilen-MySQL-Programm, den MySQL-Monitor, tun.

Es ist ziemlich einfach, Sie schreiben eine SQL-Datei mit einem Befehl und laden/führen sie aus, wenn es Zeit für die Wiederherstellung ist.

Sie finden die Dokumentation für select into outfile hier (suchen Sie einfach die Seite nach outfile). LOAD DATA INFILE ist im Wesentlichen das Gegenteil davon. Siehe hier für die Dokumente.