我试图转储数据库:
<?php
$dbhost = "localhost";
$dbuser = "XXXX";
$dbpass = "XXXXXXXX";
$dbname = 'testdb';
$list = shell_exec ("C:\wamp\bin\mysql\mysql5.1.33\bin\mysqldump.exe $dbname --user=$dbuser--password=$dbpass > dumpfile.sql");
?>
我尝试了指定mysqldump.exe的完整路径或者只是使用mysqldump,它仍然给我一个0kb的dumpfile.sql
详细说明: 编程语言:PHP 数据库:MySql 5.XX 操作系统(服务器):Windows Server 2003.(目前在Windows Vista计算机上测试)
编辑@ Jeremy Heslop:我试过了:
shell_exec("C:\wamp\bin\mysql\mysql5.1.33\bin\mysqldump.exe --opt -h $dbhost -u$dbuser -p$dbpass $dbname > test.sql");
safe_mode = off
仍然没有运气。
答案 0 :(得分:2)
叫我疯了,但是你不需要在你的路径名中逃脱那些反斜杠吗?我猜这个命令失败了,因为错误发生在stderr上,所以没有任何内容被写入。
答案 1 :(得分:1)
它应该是“c:\ wamp \ bin \ mysql \ mysql5.1.36 \ bin&gt; mysqldump -u root -p zencartdb&gt; zencartdb.sql”
它要求输入密码,如果您已经为root提供了密码或只是输入了密码。这将成功备份。我也在Windows Vista上测试过它。
答案 2 :(得分:0)
如果我没弄错,dbname应该在--user和--password之后的调用结束时如下:
$list = shell_exec ("C:\wamp\bin\mysql\mysql5.1.33\bin\mysqldump.exe --user=$dbhost --password=$dbpass $dbname > dumpfile.sql");
否则如果不起作用,还有其他一些需要注意的事项。确保运行php的用户具有写入该目录的权限。还要确保php.ini有safe_mode = off,因为这可能会导致问题。祝你好运!
答案 3 :(得分:0)
我试过这样的 $ result = system(“C:\ wamp \ mysql \ bin \ mysql.exe -u $ username -p $ password $ dbname&lt; $ pathtomysqlfile”); 并成功执行,然后恢复备份。我想用wamp.please试试..........