即时备份MySQL数据库

时间:2010-06-23 22:50:30

标签: php mysql

我为我的CMS编写了一个mysql备份系统,它将所有数据库数据和结构转储到一个gzip压缩的.sql文件中:

$filename = DB_NAME.'_'.date('Y.m.d_H\hi_(s.'.round(microtime()*100,0).')').'.sql.gz';
exec('mysqldump --default-character-set=UTF8 --opt --compress --host='.DB_HOST.' --user='.DB_USER.' --password='.DB_PASS.' '.DB_NAME.' | gzip > '.DIR_BACKUP.$filename);

它在我的开发服务器上工作正常,但是当我尝试在我的生产服务器中运行相同的代码时,永远不会创建该文件。这是许可问题吗?我应该为它配置什么?谢谢!

---似乎问题依赖于exec()函数。我在哪里可以允许php运行该功能?

2 个答案:

答案 0 :(得分:0)

可能是权限问题,要么您无法写入文件系统,要么更可能(当然,如果您在共享主机服务上)不允许使用exec命令。 我相信你可以用php_info();

来检查

你没有收到错误信息吗?如果没有,可能在php中显示错误/警告等

答案 1 :(得分:0)

听起来像权限问题。您是否尝试将DIR_BACKUP设置为/ tmp或类似?