[英]Postgres pg_dump never end
如果我在命令行下执行以下命令,则效果很好
C:\\Program Files\\PostgreSQL\\10\\bin\\pg_dump.exe" -U postgres -h localhost -d mydb -f "C:\\backup\\backUp.sql" 2>&1'
当我通过脚本执行相同操作后,它永远不会结束。
<?php print_r(exec('"C:\\Program Files\\PostgreSQL\\10\\bin\\pg_dump.exe" -U postgres -h localhost -d mydb -f "C:\\backup\\backUp.sql" 2>&1'));?>
因此,我能够跟踪实际的问题,代码不是真正的问题,主要是未设置环境变量,在设置完这些东西后,它们开始平稳运行,
您可以按照以下步骤在Window 10中设置环境变量,
;C:\Program Files\PostgreSQL\10\bin ;C:\Program Files\PostgreSQL\10\lib
请注意:在Windows 10上,如果您遵循以下步骤:计算机=>属性=>高级系统设置=>环境变量=>系统变量>选择PATH,则实际上可以选择添加新行。 单击编辑,添加/ bin和/ lib文件夹位置并保存更改。
之后,您将遇到“密码无效”,“密码提示”的问题,为避免这种情况,只需使用SET PGPASSWORD = P0stgres&,如下所示,
<?php print_r(exec('SET PGPASSWORD=yourpassword pg_dump -U postgres -h localhost -d mydb -f "C:\\backup\\backUp.sql" 2>&1'));?>
如果上述方法不起作用,请在密码后面加上&。
<?php print_r(exec('SET PGPASSWORD=yourpassword& pg_dump -U postgres -h localhost -d mydb -f "C:\\backup\\backUp.sql" 2>&1'));?>
非常感谢以下问题终于解决了这个问题:)
首先尝试:
<?php
$command = exec("C:\\Program Files\\PostgreSQL\\10\\bin\\pg_dump.exe -U postgres -h localhost -d mydb -f 'C:\\backup\\backUp.sql' 2>&1");
print $command;
?>
如果没有退出,则需要在登录后检查是否有内部退出PostgreSQL的方法。可以在其中添加&& exit
命令
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.