簡體   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