php exec() - mysqldump创建一个空文件

Ret*_*mus 11 php mysql mysqldump exec

我想从数据库创建备份,但我只得到一个空白文件.

include('config.php');

$command = "mysqldump --opt -h ".$_host." -u ".$_user." -p ".$_pass." ".$_db." > test.sql";
exec($command);

echo "<br />".$command;
Run Code Online (Sandbox Code Playgroud)

在.php文件所在的位置创建test.sql.

编辑:

注意!我正在使用XAMPP WINDOWS!

解:

因为我使用的是Windows Web服务器(XAMPP),所以我需要指定路径:

$command = 'd:\xampp\mysql\bin\mysqldump --opt -u '.$_user.' -p'.$_pass.' '.$_db.' > test.sql';
Run Code Online (Sandbox Code Playgroud)
  1. 我删除了-p和pass之间的空格.看起来像:-pMYPASSWORD
  2. 替换"'

我想如果您使用的是基于Linux的Web服务器,则不必指定mysqldump的路径.

干杯! :-)

Den*_*ret 0

您应该删除 -p 和密码之间的空格。

--opt最新版本的 mysql 不需要。

除此之外,您的语法是正确的,因此如果它不能与 -p 修复一起使用,您应该检查参数和生成的命令。