使用mysqldump在php中备份mysql数据库

时间:2010-12-15 08:36:52

标签: php mysql

我有这个代码,它使用mysqldump来备份mysql数据库。问题是我遇到了这个致命的错误:

  

致命错误:最长执行时间   超过60秒   C:\ wamp \ www \ pos \ php \ backupdb.php on   第13行

第13行是最后一行。

<?php
$backupFile = 'c:\\onstor'. date("Y-m-d-H-i-s") . '.sql';
$command = "mysqldump --opt -u root -p onstor > $backupFile";
system($command);
?>

我该怎么做,我认为代码没问题,因为我在命令提示符下尝试了它并且它有效。 将mysql / bin的路径放到环境变量中是不是很糟糕。

3 个答案:

答案 0 :(得分:2)

正如错误消息明确指出的那样,问题是您的脚本运行时间过长。通过Web服务器执行的脚本并不意味着运行时间超过几秒钟。您可以使用set_time_limit更改它,但您真正应该做的是让命令行运行长时间运行的脚本。因为您正在做的唯一事情是运行CLI命令,所以完全抛弃PHP包装器。如有必要,将其设为shell脚本。定期运行此shell脚本作为cron作业/ Windows Scheduler任务(或任何调用Windows等效项)。

答案 1 :(得分:1)

您的代码看起来不错。倾倒需要很多时间。就这样。阅读此Fatal error: Maximum execution time of 400 seconds exceeded。先做那里写的,然后在你的代码中查找任何问题。

答案 2 :(得分:1)

消息说你达到了60秒的执行时间。

您可以使用set_time_limit功能更改它,即:

 set_time_limit(120); // 2 minutes

但我不知道为什么你会尝试在PHP中使用mysqldump,这对我来说似乎很危险。