我将使用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
。
答案 0 :(得分:1)
正如Hakra夫人已经说过的那样,如果您的主机已禁用系统命令的执行,您将无法运行mysqldump
。
您必须要求他们启用系统命令,或使用PHP脚本执行转储。但是要非常小心PHP转储脚本:我的经验表明,许多转储创建了破坏或不完整的转储。
一些谷歌搜索显示this one等小工具。但如上所述,要小心并做一些测试来验证准确性。
我所知道的最好的基于PHP的导出工具正在正常工作是PhpMyAdmin。也许这可以帮助。理论上,甚至可以隔离它的导出库,但据我所知,它不会以任何简单的方式公开它以用于其他脚本。