php - 除了使用 system() 函数进行备份之外,还需要一种运行 mysqldump 的方法

标签 php mysql shared-hosting

我将使用 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()。我尽量避免使用 cronSELECT * OUTFILE 之类的东西。

最佳答案

正如 Hakra 女士已经说过的,如果您的主机禁用了系统命令的执行,您将根本无法运行 mysqldump

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

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

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

关于php - 除了使用 system() 函数进行备份之外,还需要一种运行 mysqldump 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11904011/

相关文章:

javascript - 通过 Javascript 将 PHP 数组传递给另一个 PHP 脚本

php - 在 codeigniter 中一定时间间隔后减少产品价格

php - 将 Laravel 5.4 部署到共享主机

php - 我多久可以通过 PHP 查询 MySQL 数据库

php - 在 student_ids 到 class_times 的映射中找到常见负空间的最佳方法

php - 建模产品库存变体电子商务与图像 PHP

javascript - 当用户属于某个组时,如何在 JS 中创建弹出窗口?

java - 有条件更新交易中的值

hosting - EC2 作为 Windows 的全职 VPS

javascript - 我们可以使用 NodeMailer 在 NodeJs 中一次发送多少封电子邮件?