虽然您可以从 PHP 执行备份命令,但它们实际上与 PHP 没有任何关系。这都是关于 MySQL 的。
我建议使用 mysqldump 实用程序来备份数据库。该文档可以在这里找到:http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html.
mysqldump的基本用法是
mysqldump -u user_name -p name-of-database >file_to_write_to.sql
然后您可以使用类似命令恢复备份
mysql -u user_name -p <file_to_read_from.sql
您有权访问 cron 吗?我建议制作一个 PHP 脚本,将 mysqldump 作为 cron 作业运行。那会是这样的
<?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*/}
如果 mysqldump 不可用,本文介绍了另一种方法,使用SELECT INTO OUTFILE
and LOAD DATA INFILE
命令。与 PHP 的唯一联系是您使用 PHP 连接到数据库并执行 SQL 命令。您还可以通过命令行 MySQL 程序(MySQL 监视器)执行此操作。
这非常简单,您使用一个命令编写一个 SQL 文件,并在需要恢复时加载/执行它。
您可以找到 select into outfile 的文档here http://dev.mysql.com/doc/refman/5.1/en/select.html(只需在页面中搜索 outfile)。 LOAD DATA INFILE 本质上与此相反。看here http://dev.mysql.com/doc/refman/5.1/en/load-data.html对于文档。