0

当我从 cmd 框中运行以下命令时,它工作正常;创建包含我的数据库数据的文件:

"\Program Files\EasyPHP-5.3.8.1\mysql\bin\mysqldump" -u root -p databasename > D:\path\dumpedfile.sql

但是当我从一个php脚本运行这个时,它会生成文件,但它是空的:

shell_exec('"\Program Files\EasyPHP-5.3.8.1\mysql\bin\mysqldump" -u root -p databasename > D:\path\dumpedfile.sql');

(注意:我没有密码设置)

我究竟做错了什么?

请帮忙谢谢

4

2 回答 2

0

尝试这样的事情:

<?php
 $User = "root";
 $Password = "mypass";
 $DatabaseName = "bcms6"
 $File = "mydump.sql";
 shell_exec("fullpath\mysqldump --allow-keywords --opt -u $User -p $Password $DatabaseName > $File");
 //Or this way
 shell_exec('"C:\Program Files (x86)\EasyPHP-5.3.9\mysql\bin\mysqldump.exe" -u root -p database > database_dump.sql'); //second way with full path.
?>

你也可以试试这个方法:

$command = 'mysqldump -u root -ppassword database > /path/database.sql';
system($command, $output);

if($output != 0) {
  echo 'Error during backup';
else {
 echo 'Database dumped';

}

已编辑.. 密码必须是硬编码的。

于 2013-05-28T21:10:57.610 回答
0

如果您的用户帐户上没有任何密码,则应尝试不使用该-p参数。

shell_exec('"\Program Files\EasyPHP-5.3.8.1\mysql\bin\mysqldump" -u root databasename > dumpedfile.sql');
于 2013-05-28T20:52:06.857 回答