我正在尝试执行
exec('mysqldump -u user -pPASSWORD db1 tbl1 > /etc/table1.sql' ,$output, $return_var);
我也尝试过,
exec('mysqldump -u user -pPASSWORD db1 tbl1 > /etc/table1.sql');
但 $输出为空, $ return_var为2
我在文件 / etc / sudoers
中更改了apache用户的权限#User privilege specification
www-data ALL=(ALL:ALL) NOPASSWD:ALL
以下是在cmd上运行
mysqldump -u user -pPASSWORD db1 tbl1 > /etc/table1.sql
有人可以帮助我吗?
答案 0 :(得分:0)
我宁愿将其发布为评论而不是答案,但我建议使用popen
,因为它可能会为您的命令失败提供更多有用的信息。
全功能签名:
popen (string $command, string $mode)
它有点像fopen
,包括模式。在您的情况下,您可能希望使用'r'
作为模式。该函数返回fopen
之类的句柄,因此您可以fread
获取数据。完成后别忘了pclose
汉德!
要捕获任何错误输出(即使命令失败,该函数也会返回句柄),在命令后添加2>&1
(包括前导空格)。您可以在之后删除它,它只是将错误重定向到输出。
<强>来源:强>