需要一种方法来运行mysqldump而不是使用system()函数进行备份

时间:2012-08-10 14:42:05

标签: php mysqldump shared-hosting

我将使用php脚本备份我的数据库,该脚本使用system()函数执行命令。不幸的是,我的共享主机已禁用它。我跑的时候收到了这个警告:

  

警告:出于安全原因,在第162行的/ path-to-my-file中已禁用system()

这是我的代码:

$filename = 'backup/mybackupfile.sql';
$command = "mysqldump -u myuser -pmypass mydatabase > ". $filename ."";
system($command);

它在xampp的本地计算机上正常运行,但它在我的共享主机上遇到了问题。

因此,我需要另一种方法来运行mysqldump命令,而不是使用system()。我尽量避免使用 cron SELECT * OUTFILE

1 个答案:

答案 0 :(得分:1)

正如Hakra夫人已经说过的那样,如果您的主机已禁用系统命令的执行,您将无法运行mysqldump

您必须要求他们启用系统命令,或使用PHP脚本执行转储。但是要非常小心PHP转储脚本:我的经验表明,许多转储创建了破坏或不完整的转储。

一些谷歌搜索显示this one等小工具。但如上所述,要小心并做一些测试来验证准确性。

我所知道的最好的基于PHP的导出工具正在正常工作是PhpMyAdmin。也许这可以帮助。理论上,甚至可以隔离它的导出库,但据我所知,它不会以任何简单的方式公开它以用于其他脚本。