mysqldump执行错误的命令

时间:2016-01-14 09:53:06

标签: php mysqldump

我尝试备份我的数据库。我有以下代码:

<?php
    $command = 'mysqldump --user=root --host=localhost opencart_status > backup.sql';
    $result = passthru($command);
    if(!$result){
        echo "Error!";
    }
    else{
        echo "OK";
    }
?>

我没有用数据库连接到服务器的密码。我需要备份的数据库名为opencart_status

输出basckup.sql,但是B大小为0并且为空。我在屏幕上看到的输出是错误的!我还尝试了exec()函数。但结果相同。

感谢您的建议。

2 个答案:

答案 0 :(得分:0)

问题可能出在端口或您使用的命令中。请尝试以下代码:

<?php
    $command = 'mysqldump --host=localhost:3306 --user=root opencart_status > backup.sql';
    system($command);
?>

答案 1 :(得分:0)

首先,如果您查找passthru文档,您应该看到passthru没有返回有关执行状态的任何值。如果需要检查返回值,则应在文档中添加第二个参数,该参数定义为$return_varhttp://php.net/manual/en/function.passthru.php

最有可能你应该从检查该值而不是函数返回值开始。

之后我建议您尝试从命令行运行mysqldump命令。您应该能够在控制台中调试mysqldump问题,然后将其移动到php执行。