我想备份并在数据库上回滚备份,我正试图查看错误:
'mysqldump'未被识别为内部或外部命令,可操作程序或批处理文件。
以上是我在导出的文件中获得的内容。这就是我的目的:
$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测试localhost,Apache服务器正在运行,而MySQL正在运行。
答案 0 :(得分:2)
因为mysqldump
不在httpd用户路径中。
我认为您在Linux(或UNIX)中工作。
要知道女巫目录包含mysqldump
,您可以执行whereis mysqldump
。
然后你有两个选择:
检查mysqldump目录是否在httpd用户的PATH环境变量中(usualy www-data
用户为apache服务器)。如果不存在,请将其包含在PATH中。
您也可以使用完整路径执行mysqldump
:
像这样:
exec("/path_to_mysql_bins/mysqldump ...
答案 1 :(得分:0)
该错误不是mysqldump错误,它是一个Windows错误,表示它不理解mysqldump
与之相关的内容。要解决此问题,您可以将mysqldump可执行文件的路径包含到environment variables中,或者运行带有mysqldump可执行文件的完整路径的exec命令(可以在XAMPP mysql文件夹中找到)。