Postgresql
pg install:“數據庫集群初始化失敗”
(**注意:**此問題已從其原始形式強制改寫,因此它反映了實際問題,並將幫助其他人找到相同問題的解決方案)。
我仍然無法在我的 Windows 7 Ultimate x64 電腦上成功安裝 PostgreSQL。有關一些歷史,請參閱此先前的問題。
我重新灌輸了 9.2,我得到的唯一錯誤是這個:
上面寫著:
“執行安裝後步驟時出現問題。安裝可能無法正確完成。數據庫集群初始化失敗”。
即使在我完全手動解除安裝 PostgreSQL 和 pgAmdin-III 之後也會發生這種情況:
- 執行 PostgreSQL 解除安裝程序,失敗並出現錯誤
Error stopping service postgresql-x64-9.2
。- 刪除了 PostgreSQL下
HKEY_LOCAL_MACHINE\SOFTWARE
的所有 PostgreSQL 相關系統資料庫項HKEY_CURRENT_USER\SOFTWARE
- 刪除了在管理員命令提示符中
postgres
使用的使用者帳戶net user postgres /delete
(在開始菜單中右鍵點擊“命令提示符”,選擇“以管理員身份執行”)- 刪除了
postgres
使用者配置文件- 刪除
C:\Program Files\PostgreSQL\
目錄,包括%appdata%內的數據目錄- 刪除了一些指向 PostgreSQL 的 PgAdmin-III 系統資料庫項
- 刪除了 postgres 的服務帳戶
services.msc
當我重新啟動並再次嘗試安裝程序時,它會失敗並顯示相同的消息。
來自的
install-postgresql.log
文件%TEMP%
包含:Executing cscript //NoLogo "C:\Program Files\PostgreSQL\9.2/installer/server/initcluster.vbs" "NT AUTHORITY\NetworkService" "postgres" "****" "C:\Program Files\PostgreSQL\9.2" "C:\Program Files\PostgreSQL\9.2\data" 5432 "DEFAULT" Script exit code: 1
稍後又出現另一個錯誤:
creating template1 database in C:/Program Files/PostgreSQL/9.2/data/base/1 ... initdb: could not execute command ""C:/Program Files/PostgreSQL/9.2/bin/postgres.exe" --boot -x1 -F ": No error
在此處查看完整的安裝程序日誌文件下載。
看來此問題的根本原因可能是@Celeritas 的電腦的
COMSPEC
環境變數值不正確。它有一個尾隨分號,所以不是正常的:C:\Windows\system32\cmd.exe
它是:
C:\Windows\system32\cmd.exe;
這一個字元的差異就足夠了。以上不是有效的命令提示符路徑,因此
popen()
呼叫失敗。不幸的是,而不是有用的東西,比如:'"C:\Windows\system32\cmd.exe;"' is not recognized as an internal or external command, operable program or batch file
相反,它報告了令人愉快的有用錯誤
No error
:initdb: could not execute command ""C:/Program Files/PostgreSQL/9.2/bin/postgres.exe" --boot -x1 -F ": No error
見相關:
- http://forums.enterprisedb.com/posts/list/2125.page
- http://postgresql.1045698.n5.nabble.com/initdb-failure-td2083455.html
我已將此情況報告給安裝團隊並寫了一個 wiki 條目來描述它。見博文。
該問題最終通過以下方式解決:
- 編輯
COMSPEC
環境變數- 解除安裝 PostgreSQL
- 重新啟動
- 重新安裝 PostgreSQL
儘管在此之前還有很多實際上不需要解決此問題,包括手動完全手動徹底解除安裝 PostgreSQL。
現在我只想找到編寫修改此環境變數的程序的人。