繁体   English   中英

Postgres pg_dump永无止境

[英]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'));?>

非常感谢以下问题终于解决了这个问题:)

Postgres“ psql无法识别为内部或外部命令”

为Inno Setup执行的Postgres(psql)进程设置PGPASSWORD环境变量

首先尝试:

<?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.

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