[英]mysqldump in php using exec returns empty file
我浏览了几篇文章,人们设法解决了他们的问题,但不幸的是,这对我没有成功。 我在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的路径来进行尝试,在这种情况下,该进程永远不会结束。 现在,该过程立即结束,但是文件为空。
我也遇到了同样的问题,并且因为无法找到对我有用的解决方案而束手无策。
最后,我尝试从cmd(Windows的命令提示符)运行命令,发现Windows找不到该MySQL命令的路径。
总之,长话短说,这是对我有用的方法,您可以摆脱mydsqldump命令的绝对路径:
用法:mysqldump [OPTIONS]数据库[表]
或mysqldump [OPTIONS]-数据库[OPTIONS] DB1 [DB2 DB3 ...]
或mysqldump [OPTIONS]-所有数据库[OPTIONS]
有关更多选项,请使用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';
用您自己的信息替换上面代码中的大写部分
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.