【发布时间】:2021-06-04 04:59:22
【问题描述】:
我创建了一个backup.sql 脚本来恢复MySql 数据库。我已经使用 PHPMyAdmin 导入检查了脚本,一切正常(数据库已成功恢复)。现在我想通过 PHP 运行它。我找到了this question,并且找到了:
1) 在 htdocs 文件夹中创建了一个 PHP 文件,内容如下
$site_path= realpath(dirname(__FILE__)).'/';
$command = 'mysql'
. ' --host=' . 'localhost'
. ' --user=' . 'myuser'
. ' --password=' . 'mypass'
. ' --database=' . 'dbname'
. ' --execute="SOURCE ' . $site_path;
$output = shell_exec($command . 'backup.sql"');
echo "<pre>".$output."</pre>";
2) 将 backup.sql 脚本放入 htdocs 文件夹
但是当我运行脚本时,数据库上什么也没有发生,shell_exec 结果也没有显示。我在 Windows 机器上的 Apache 下运行 PHP 和 MySql。命令变量的值如下:
mysql --host=localhost --user=myuser --password=mypass--database=dbname --execute="SOURCE C:\Programmi\Apache Software Foundation\Apache2.2\htdocs/
我错过了什么?
【问题讨论】:
-
您是否启用了 php 错误?
-
是的,我已经启用了
error_reporting(E_ALL);和ini_set('display_errors', 1);的错误 -
我刚刚意识到您想导入以前用 PHP 制作的备份。为什么你甚至想用 PHP 脚本来做呢?您可以通过手动甚至 bash 脚本轻松完成此操作。
-
因为我想让站点管理员能够通过浏览器恢复数据库(即只需单击一个按钮)。管理员对 Mysql 和 PhpMyAdmin 一无所知,应该只浏览 sql 文件。其余的通过 PHP 脚本完成。