[英]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_var
: http : //php.net/manual/zh/function.passthru.php
您很可能应该先检查该值而不是函数返回值。
之后,我建议您尝试从命令行运行mysqldump
命令。 您应该能够在控制台中调试mysqldump
问题,然后将其移至php以执行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.