Почему я получаю эту ошибку при попытке использовать команду mysqldump? - PullRequest
0 голосов
/ 01 февраля 2012

Я хочу выполнить резервное копирование и откат резервного копирования в базе данных, и я пытаюсь понять, что не так:

'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 - моя папка для резервного копирования. Так почему я получаю эту ошибку?

И, как дополнительная информация, я тестирую на localhost с XAAMP, сервер Apache работает, а MySQL работает также.

Ответы [ 2 ]

2 голосов
/ 01 февраля 2012

Поскольку mysqldump не находится в пути пользователя httpd.

Я полагаю, вы работаете в Linux (или UNIX).

Чтобы узнать, что каталог ведьм содержит mysqldump, вы можете выполнить whereis mysqldump.

Тогда у вас есть две опции:

  • Проверьте, находится ли каталог mysqldump в переменной окружения PATH пользователя httpd (обычно пользователь www-data для сервера apache).И включить его в PATH, если его нет.

  • Также вы можете выполнить mysqldump с полным путем:

Вот так:

exec("/path_to_mysql_bins/mysqldump ...
0 голосов
/ 01 февраля 2012

Ошибка не является ошибкой mysqldump, это ошибка Windows, которая говорит о том, что она не понимает, к чему относится mysqldump. Чтобы это исправить, вы можете либо включить путь к исполняемому файлу mysqldump в переменные окружения , либо запустить команду exec с полным путем к исполняемому файлу mysqldump (который вы можете найти в папке mysql XAMPP).

...