[英]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.