使用PHP备份MySql数据库

时间:2010-08-29 18:14:16

标签: php sql mysql database backup

我在MySql中有一个非常大的数据库,我需要每天都对它进行备份。

我需要能够从任何计算机上进行备份,因此我考虑制作一个php脚本来执行此操作并将此PHP脚本放在网上(使用密码保护和授权等进行处理,以便我只能访问它)。

我不知道,这怎么做得恰到好处?

我应该使用哪些命令,是否可以更改备份设置(例如Add AUTO_INCREMENT value = true)?

我会很感激的例子......

另外,如果这是一种不好的方法(不安全,或者可能会给错误的sql文件提供错误的备份),那么还有哪种方法更受欢迎? 我有shell访问权限,我有一个VPS(ubuntu服务器)。

我的Mysql版本是5.1

由于

2 个答案:

答案 0 :(得分:8)

没有必要让PHP参与数据库备份。您只需要一个使用mysqldump备份数据库的脚本,并setup a CRON job定期执行脚本:

mysqldump db_name > backup-file.sql

...将数据库备份到文件,方法是将mysqldump的输出重定向到指定的文件名。

彼得提出了一个很好的观点,即该命令只会给你一天的归档 - 任何两天以上的档案都会被覆盖。这将允许您有七天的滚动日志:

CURRENT_DAY_OF_WEEK=`date '+%u'`
FILENAME="mysqlbackup_"$CURRENT_DAY_OF_WEEK".sql"

mysqldump db_name > $FILENAME

另请注意,文件权限将适用 - 如果执行脚本的用户没有该文件夹的权限,则无法写入文件。

答案 1 :(得分:0)

我同意OMG Ponies mysqldump +脚本是要走的路。

我使用的唯一其他选项是设置从属服务器。这为硬件故障提供了几乎即时的备份,并且可以位于与主服务器不同的建筑物中。除非你有大量的数据库写入,否则你不一定需要一个非常强大的服务器,因为它不处理查询,只处理数据库更新。