每当我尝试在 PHP 中使用 mysqldump 时都会出现错误。如何正确导入并使用它?
Posted
技术标签:
【中文标题】每当我尝试在 PHP 中使用 mysqldump 时都会出现错误。如何正确导入并使用它?【英文标题】:I get an error whenever i try to use mysqldump in PHP. How can I properly import it and use it? 【发布时间】:2019-05-21 00:30:18 【问题描述】:我无法使用 mysqldump 而不会出错。
我正在用 php 编写一个脚本来备份我的数据,但是我无法让 mysqldump 作为命令工作。
我只是在 PHP 的 exec() 方法中的 mysqldump 命令遇到问题。
exec("mysqldump --user=exampleUser --host=exampleHost exampleDB > filepath/file.sql");
预期的结果是在给定的文件路径下创建了一个名为file.sql
的新文件(创建文件有效),并且在该文件中保存了所有信息。
实际结果是给定路径下的一个空 file.sql。
错误信息是:
“mysqldump”命令拼写错误或找不到。
【问题讨论】:
使用完整路径,例如/usr/something/something/.../mysqldump
.
我做到了,不过感谢您的建议。
@Lovahrk 确实有效
@kellymandem 还没有。
a) 你在什么操作系统上做这个? b)请注意,您能否使用 exec() 命令使用 mysqldump
的完整路径编辑问题,如 deceze 建议的那样,下面给出错误
【参考方案1】:
你可以试试这样的
<?php
/* For a unix like system, use this */
exec('$(which mysqldump) -u admin -p test', $output);
/* For windows use this, after adding to `mysql bin` folder to your PATH */
exec('mysqldump -u admin -p test', $output);
$content = implode("\n", $output);
$path = '';
$file = $path . 'test.sql';
file_put_contents($file, $content);
注意:您需要将mysql bin
文件夹添加到您的Windows 路径,如果您正在使用它,您可以按照this 链接中的说明进行操作,如果使用官方独立 mysql 安装,如果你使用 xampp,你可以去这个link 了解如何做
【讨论】:
非常感谢您的回答,但遗憾的是也没有用。 你使用的是什么操作系统? 使用 windows 10 @Lovahrk 我已经更新了我的答案,以提供有关如何在 Windows 上解决问题的选项以上是关于每当我尝试在 PHP 中使用 mysqldump 时都会出现错误。如何正确导入并使用它?的主要内容,如果未能解决你的问题,请参考以下文章
PHP执行Mysql数据库的备份和还原(mysqldump)