我将使用 PHP 脚本备份数据库,该脚本使用 system()
函数执行命令。不幸的是,我的共享主机已禁用它。我运行时收到此警告:
Warning: system() has been disabled for security reasons in /path-to-my-file on line 162
这是我的代码:
$filename = 'backup/mybackupfile.sql';
$command = "mysqldump -u myuser -pmypass mydatabase > ". $filename ."";
system($command);
它在我的本地计算机上使用 xampp
运行良好,但在我的共享主机上却出现问题。
因此,我需要另一种方式来运行 mysqldump
命令,而不是使用 system()
。我尽量避免使用 cron 或 SELECT * OUTFILE
之类的东西。
最佳答案
正如 Hakra 女士已经说过的,如果您的主机禁用了系统命令的执行,您将根本无法运行 mysqldump
。
您必须要求他们启用系统命令,或使用 PHP 脚本进行转储。但是,要非常小心周围的 PHP 转储脚本:我的经验表明,许多脚本会创建损坏或不完整的转储。
一些谷歌搜索显示了一些小工具,例如 this one 。但正如所说,要小心并做一些测试来验证准确性。
我所知道的最好的基于 PHP 的导出工具是 PhpMyAdmin。 。也许这会有所帮助。从理论上讲,甚至应该可以隔离其导出库,但据我所知,它不会以任何简单的方式公开它以便在其他脚本中使用。
关于php - 除了使用 system() 函数进行备份之外,还需要一种运行 mysqldump 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11904011/