Mysqldump创建空的sql文件? [php& Windows上的mysql]

时间:2010-01-14 03:12:37

标签: php mysql mysqldump

我试图转储数据库:

<?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

仍然没有运气。

4 个答案:

答案 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)

如果我没弄错,d​​bname应该在--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试试..........