Почему мне нужно указывать полный путь к mysqldump при выполнении дампа базы данных в переполнении стека

Я пытаюсь создать дамп базы данных MySQL в классе PHP.

Я выполняю следующий код, но создаю только пустой файл дампа. Но та же команда отлично работает, когда я выполняю ее в командной строке.

$script = 'mysqldump -h ' . DB_HOST . ' -u ' . DB_USER . ' -p' . DB_PASSWORD . ' ' . DB_NAME . ' > ' . DB_DUMP_PATH . 'mysql-db-dump-' . date('Y-m-d') . '.sql';
exec($script);

Но когда я указываю полный путь к mysqldump, файл дампа создается правильно.

$script = '/usr/local/mysql/bin/mysqldump -h ' . DB_HOST . ' -u ' . DB_USER . ' -p' . DB_PASSWORD . ' ' . DB_NAME . ' > ' . DB_DUMP_PATH . 'mysql-db-dump-' . date('Y-m-d') . '.sql';
exec($script);

Но я видел большинство уроков, они просто используют команду mysqldump. Не полный путь. В чем причина этого? Я планирую использовать это как в среде Unix, так и в среде Windows.

Возможно ли получить путь mysqldump в php для обеих сред?

-1

Решение

Вы можете избежать пути, скопировав mysqldump а также mysql команды из /usr/local/mysql/bin/ в /usr/bin/ дорожка.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]