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