我试图转储一个数据库:
<?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 Server2003。(当前在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 =关闭
还是不走运伙计。
发布于 2010-01-14 11:33:29
可以说我疯了,但你不需要转义路径名中的那些反斜杠吗?我猜这个命令失败了,因为错误发生在stderr上,所以没有写入任何内容。
发布于 2010-12-22 19:43:15
它应该是"c:\wamp\bin\mysql\mysql5.1.36\bin>mysqldump -u root -p zencartdb > zencartdb.sql“
它要求输入密码,如果您已将密码提供给root用户,则提供密码,或者只需按enter键。这将使备份成功。我也在Windows Vista上测试过它。
发布于 2010-01-14 11:27:02
如果我没记错的话,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,因为这可能会导致问题。祝好运!
https://stackoverflow.com/questions/2061922
复制相似问题