【发布时间】:2019-10-25 15:54:39
【问题描述】:
我正在尝试通过 mysqldump 备份 MySQL,该命令在命令行中运行,但它从 exec() 返回 2。
这是我正在使用的代码:
$filename = "/path/to/backup/dbBackUp".date("Y-m-d").".sql";
$backupcmd = "/usr/bin/mysqldump -u USERNAME -pPASSWORD -A --single-transaction >".$filename;
exec($backupcmd, $output, $return);
$output 的 Vardump 是 array(0) { } 和 $return = 2。
【问题讨论】:
-
网络服务器在运行吗?网络服务器用户是否有
/path/to/backup/的权限? -
这不会修复您的错误,但可能会帮助您找出问题所在。 stackoverflow.com/a/16665146/1007220
-
正如@AbraCadaver 所说,apache 正在运行您的代码(除非您正在执行 php /path/to/your/script.php 而不是加载网页)并且它可能没有读取/写入该文件夹甚至执行 mysqldump 的权限
-
所以寻找一种方法,让您的进程为 php 提供写入该文件夹的权限。这取决于您使用的系统(CentOS、Ubuntu、Windows 等)
标签: php mysql command-line mariadb