我想要备份并回滚数据库上的备份,并且我正在尝试查看出了什么问题:
'mysqldump' is not recognized as an internal or external command, operable program or batch file.
以上是我在导出的文件中得到的内容。这就是我运行的:
$database = 'logindb';
$backup = $location.'/'.$database.'_backup_'.date('Y').'_'.date('m').'_'.date('d').'.sql';
exec("mysqldump --opt -h localhost -u root logindb > $backup 2>&1", $output);
print_r($output);
因为 $location
是我的备份文件夹。那么为什么我会收到这个错误?
作为附加信息,我正在使用 XAAMP 在本地主机上进行测试,Apache 服务器正在运行,MySQL 也正在运行。
最佳答案
因为mysqldump
不在httpd用户路径中。
我假设您在 Linux(或 UNIX)中工作。
要知道witch目录包含mysqldump
,你可以执行whereis mysqldump
。
那么你有两个选择:
检查 mysqldump 目录是否位于 httpd 用户(通常是 apache 服务器的
www-data
用户)的 PATH 环境变量中。如果它不存在,请将其包含在 PATH 中。您还可以使用完整路径执行
mysqldump
:
像这样:
exec("/path_to_mysql_bins/mysqldump ...
关于php - 为什么在尝试使用 mysqldump 命令时出现此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9095705/