【问题标题】:mysqldump generates a blank file via PHP system()mysqldump 通过 PHP system() 生成一个空白文件
【发布时间】:2011-08-21 06:51:08
【问题描述】:

在您说还有其他类似的问题之前,但我所看到的答案都没有奏效,所以我提出了一个新问题。

我正在尝试通过system() 使用mysqldump 与此命令:

$backup_path = $_SERVER['DOCUMENT_ROOT'] . '/website/acp/backup/';
$backup_name = $backup_path . $dbname . '.backup.' . date('l.dS.F.Y.g.iA') . '.sql';

$command = 'mysqldump ' . $dbname . ' -u ' . $dbuser . ' -p' . $dbpasswd . ' > ' . $backup_name;

system($command, $returned);

print_r($returned); 

$returned 输出127 并且大小为零的空白文件位于备份文件夹中,现在当我回显$command 然后将其输入终端时,它可以完美运行并生成完整备份数据库。这是我不明白的部分,为什么它在system() 调用中运行不佳,但在终端中运行正常?

【问题讨论】:

  • 指定的用户帐户是否具有所需的“文件”权限?

标签: php system mysqldump


【解决方案1】:

这是因为在运行mysqldump时需要输入密码,即使你用-p指定了密码

这应该会有所帮助:http://www.techiecorner.com/1619/how-to-setup-mysqldump-without-password-in-cronjob/

【讨论】:

    【解决方案2】:

    您的问题很可能是您没有写入备份目录的权限。

    如果你运行代码:

    $backup_path = $_SERVER['DOCUMENT_ROOT'] . '/website/acp/backup/';
    file_put_contents("{$backup_path}test-file.txt", "test data");
    

    文件是否出现在备份目录中?

    如果不是,您需要修改目录的权限,以便网络服务器用户可以写入它。 chmod 777 是一种简单的解决方案,但会使权限保持开放。

    【讨论】:

      【解决方案3】:

      我不得不不同意安德烈上面的回答。

      以下适用于许多共享托管公司:

      $command = 'mysqldump --opt --host='.$host.' --user='.$mysql_username.' --password=\''.$mysql_password.'\' '.$dbname.' > \''.$filename.'\'';
      exec($command);
      

      如果您在使用引号的参数(文件名、密码等)中的任何位置有空格,请小心。在 PHP 中,引用时可能需要使用反斜杠,就像我在上面所做的那样。前面或后面的空格通常是一个坏主意,但我遇到了一个客户端,结果证明这是一个空的 0 字节 mysqldump 文件的原因。引用解决了这个问题。您可能还需要对参数进行 shell 转义。

      以下两行完全不同:

      -password='password  ' db_name > 'my file.sql'
      -password=password   db_name > my file.sql
      

      请注意,第二个密码末尾也有两个空格,但即使是 HTML 也可能会忽略它。

      对于菜鸟,我可能应该提一下...确保您可以手动连接设置,然后再查找无法正常工作的原因,例如 - 确保主机正确,例如localhost 或 yourdb.website.com - 确保用户名和密码有效

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-19
        • 2012-07-25
        • 2012-03-19
        • 2020-04-02
        • 1970-01-01
        • 2021-10-31
        相关资源
        最近更新 更多