Я пытаюсь создать дамп базы данных 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 для обеих сред?
Вы можете избежать пути, скопировав mysqldump
а также mysql
команды из /usr/local/mysql/bin/
в /usr/bin/
дорожка.
Других решений пока нет …