繁体   English   中英

mysqldump无法通过php工作

[英]mysqldump not working through php

我试图通过php进行数据库的mysqldump,我只能通过这种方式通过命令行进行数据库的转储。

d:
cd "d:\wamp\bin\mysql\mysql5.5.24\bin"
mysqldump.exe
mysqldump --user=user --password=password --host=localhost db_name > "D:\dump\test.sql"

当试图以这种方式从php执行此命令时,我得到一个空的转储文件。

$cmd  = 'd: cd "d:/wamp/bin/mysql/mysql5.5.24/bin"mysqldump.exe>mysqldump --user=user --password=password --host=localhost db_name > "D:\dump\test.sql"';
exec($cmd);

或者这样

$cmd  = 'd:/wamp/bin/mysql/mysql5.5.24/bin>mysqldump.exe>mysqldump --user=user --password=password --host=localhost db_name > D:\dump\test.sql';
exec($cmd);

或者这样

$cmd  = 'd:/wamp/bin/mysql/mysql5.5.24/bin>mysqldump --user=user --password=password --host=localhost db_name > D:\dump\test.sql';
exec($cmd);

我只得到空的转储文件。 我已经经历了很多的问题在这里一样了这个 ,而和很多,但没有该解决方案为我工作。

请查看并提出任何可行的方法。

谢谢。

您似乎使用Windows,创建多命令行的方法是使用'&'运算符( 更多信息

范例:

$cmd  = 'd: & cd "d:/wamp/bin/mysql/mysql5.5.24/bin" & mysqldump.exe --user=user --password=password --host=localhost db_name > "D:\dump\test.sql"';
exec($cmd);

另外,请仔细检查您的路径,因为您使用的是d:/wamp/...和更高版本的D:\\dump\\test.sql ,似乎您的命令使用了斜杠和反斜杠,只有\\应该可以工作。

最后,您可以使用exec的第二个参数来调试命令:

$output = array();
exec($cmd, $output);
var_dump($output);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM