【问题标题】:mysqldump passthru returncode'smysqldump passthru 返回码的
【发布时间】:2009-04-20 07:51:03
【问题描述】:

我正在尝试通过 php 进行 mysql 转储。

这是代码

$backupFile = $table. "-". date("Y-m-d-H:i:s") . '.gz';
    //Command nog aanpassen....
    $command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $dbname  | gzip > $backupFile";
    //$status = system($command);
    echo $backupFile ."<br>";
    $status = passthru($command, $a);
    echo "output:" .  $a;

$a = 2 的值。但我找不到它的含义。我也无法在任何地方找到备份文件。

有什么想法吗?

【问题讨论】:

    标签: php mysql mysqldump passthru


    【解决方案1】:

    我不确定这是否是问题所在,但看起来您的密码传递参数不正确。

    如果你使用 -p 你需要在它旁边有密码,没有空格,像这样:

    $command = "mysqldump --opt -h $dbhost -u $dbuser -p$dbpass $dbname  | gzip > $backupFile";
    

    或者使用长的 --password=$dbpass。

    例如:

    $command = "mysqldump --opt -h $dbhost -u $dbuser --password=$dbpass $dbname  | gzip > $backupFile";
    

    来自 mysqldump 手册页:

    --password[=password], -p[password]

    连接到服务器时使用的密码。如果使用短选项形式 (-p),则选项和密码之间不能有空格。如果您在命令行中省略了 --password 或 -p 选项后面的密码值,系统会提示您输入一个。

    【讨论】:

      【解决方案2】:

      也可能是您的备份目的地。确保您正在运行 mysqldump 的用户(在您的情况下可能是 www-data 或其他一些 apache 用户)对您尝试写入备份的目录具有写入权限。很多时候我会从命令行尝试一个命令..并看到它工作正常..但我是 root,或者我的用户..不是 www-data。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-30
        • 1970-01-01
        • 2012-12-16
        • 2017-02-03
        • 1970-01-01
        • 2023-02-14
        • 2020-12-31
        • 1970-01-01
        相关资源
        最近更新 更多