繁体   English   中英

mysqldump执行错误命令

[英]mysqldump wrong command for execution

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

<?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,但其大小为0 B,并且为空。 我在屏幕上看到的输出是错误! 我也尝试了exec()函数。 但结果相同。

感谢您的意见。

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

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

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

您很可能应该先检查该值而不是函数返回值。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM