我已经找了几个人,他们设法解决了他们的问题,但遗憾的是我没有成功。我在Windows上使用wamp,我的php文件如下所示
<?php
include_once("config.php");
$_user = "username";
$_pass = "password";
$_db = "dbname";
$command = 'C:\wamp\bin\mysql\mysql5.6.17\bin\mysqldump -u '.$_user.' -p'.$_pass.' '.$_db.' > test.sql';
exec($command);
echo "<br />".$command;
?>
创建文件名test.sql,但它是0字节。我也尝试将mysqldump更改为mysqldump.exe但没有成功。在此之前,我试图通过不定义mysqldump的路径,在这种情况下,该过程从未用过结束。现在流程立即结束,但文件为空。
答案 0 :(得分:0)
我也遇到了同样的问题,因为找不到我找到的任何解决方案,所以我都拉着头发。
最后,我尝试从cmd运行命令(windows&#39;命令提示符),发现Windows无法找到MySQL命令的路径。
无论如何,长话短说,这里有什么对我有用,你可以摆脱mydsqldump命令的绝对路径:
用法:mysqldump [OPTIONS]数据库[tables]
或mysqldump [OPTIONS] - 数据库[OPTIONS] DB1 [DB2 DB3 ...]
或mysqldump [选项] - 所有数据库[选项]
有关更多选项,请使用mysqldump --help
在你的代码中,删除你的(C:\ wamp \ bin \ mysql \ mysql5.6.17 \ bin)mysqldump命令的绝对路径,只留下没有任何路径的mysqldump。以下是对我有用的:
$command = 'mysqldump --opt --host=YOUR_HOST --password="YOUR_PASSWORD" --user=YOUR_DB_USER --databases YOUR_DB_NAME > PATH_TO_FILE/FILE_NAME.sql';
使用您自己的信息替换上面代码中的大写部分