每当我尝试在 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)

无法让 mysqldump 工作

每当我重新加载页面时,仍会设置取消设置 PHP 会话变量 [重复]

flyway mysqldump迁移

PHP执行Mysql数据库的备份和还原

PHP:每当调用子类中的函数时调用函数