我正在尝试在php类中创建一个mysql数据库转储。
我正在执行以下代码,但只会创建一个空转储文件。但是当我在命令行中执行它时,同样的命令工作正常。
$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环境中使用它。
是否有可能在php中为两种环境获取mysqldump路径?
答案 0 :(得分:1)
您可以通过将mysqldump
和mysql
命令从/usr/local/mysql/bin/
复制到/usr/bin/
路径来避免路径。