0

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

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

这是我的一段代码:

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

它在我的本地计算机上运行良好xampp,但它恰好是我的共享主机上的问题。

所以,我需要另一种方式来运行mysqldump命令,而不是使用system(). 我尽量避免使用cron或其他SELECT * OUTFILE东西。

4

1 回答 1

1

正如哈克拉夫人已经说过的,如果您的主机禁用了系统命令的执行,您将根本无法运行mysqldump

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

一些谷歌搜索揭示了像这个这样的小工具。但如前所述,要小心并进行一些测试以验证准确性。

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

于 2012-08-10T14:49:05.633 回答