当我从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');
(注意:我没有设置密码)
我做错了什么?
请帮忙 感谢
答案 0 :(得分:0)
如果您的用户帐户中没有任何密码,则应尝试不使用-p
参数。
shell_exec('"\Program Files\EasyPHP-5.3.8.1\mysql\bin\mysqldump" -u root databasename > dumpedfile.sql');
答案 1 :(得分: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';
}
EDITED .. 密码必须是硬编码的。