Backup von MySQL Datenbanken in PHP
25. Mai 2007Christan Friebel von unserer Partnerfirma TecArt hat mir eine Lösung gezeigt für ein Problem, das ich immer total kompliziert gelöst habe. Wenn man eine MySQL Datenbank hat, die ziemlich groß ist, dann scheitert leider PHPMyAdmin am Export der Daten. Mit folgenden PHP Script kann man aber die Daten leicht exportieren:
define('MYSQLDUMP', '/usr/bin/mysqldump'); define('DBHOST', 'server.de'); define('DBUSER', 'user'); define('DBPASS', 'pass'); define('DB', 'dbname'); define('EXPORTDIR', '/homepages/pfad/htdocs/export/'); set_time_limit(0); exec(MYSQLDUMP." -h ".DBHOST." -u ".DBUSER." --password=".DBPASS." ".DB." > ".EXPORTDIR.DB.".sql 2> ".EXPORTDIR."errors.txt"); echo "Export finished!";
den Pfad für MYSQLDUMP und MySQL kann man mit folgendem Befehl ermitteln:
$fpd = popen("which mysqldump"); $path_to_mysqldump = trim(fread($fpd, 1024)); pclose($fpd); $fp = popen("which mysql"); $path_to_mysql = trim(fread($fp, 1024)); pclose($fp);
Wieder einspielen kann man das Backup dann so:
exec("/usr/bin/mysql -u user --password=password-D usr_user_1 < dbname.sql");




