php - 为什么在尝试使用 mysqldump 命令时出现此错误?

标签 php mysql

我想要备份并回滚数据库上的备份,并且我正在尝试查看出了什么问题:

'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/

相关文章:

php - 如何仅选择已删除的复选框值

php - 404 用于 CSS 和 JS 文件 - Nginx 和 Laravel 位于子目录中

PHP错误消息: Warning: implode(): invalid arguments passed

php - 我可以在使用预加载时运行多个 Symfony 应用程序吗?

MySQL 选择确切的单词

php - 我可以从前 N(10) 个 mysql 中选择 5 个值吗? (兰特)

php - php中的反向数组

mysql - 在 MySQL 中按具有非固定范围的时间间隔分组

mysql - 在 mysql 中使用 LIKE 搜索逗号分隔的字符串

mysql - MySQL中如何将字符串转换为日期?