繁体   English   中英

Mysqldump返回空文件.sql

[英]Mysqldump return empty file .sql

我试图以这种方式转储我的数据库:

$output = NULL; $command = 'mysqldump -u $dbuser -h localhost -p$password $dbname > dump.sql'; passthru($command, $output);

我也尝试过这种方式:

$command = 'mysqldump -u $dbuser -h localhost -p$password $dbname > dump.sql';
exec($command);

两种方式都创建一个空的dump.sql

我哪里错了? 你能帮助我吗?

我建议您在使用mysqldump时使用--single-transaction标志。

mysqldump --single-transaction -u$dbuser -hlocalhost -p$password $dbname > dump.sql

话虽如此,我会怀疑是超时(PHP或MySQL)还是内存不足错误。

您是如何执行脚本的? 浏览器还是CLI?

我不能确切地说,但是如果您使用单引号,则不会用实际值替换php变量。 您应该使用双引号而不是单引号。

像$ command =“ mysqldump -u $ dbuser -h localhost -p $ password $ dbname> dump.sql”;

在执行之前尝试打印命令,以确保将值替换为变量。

让我知道这是否行不通,将为您提供更准确地调试的选项。

请在下面尝试,让我知道输出。

$command = "mysqldump -u $dbuser -h localhost -p$password $dbname > dump.sql 2>&1";
exec($command, $output);
echo '<pre>';print_r($output);exit;

暂无
暂无

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

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