我有这个代码,它使用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的路径放到环境变量中是不是很糟糕。
答案 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
,这对我来说似乎很危险。