Postgresql

pg install:“數據庫集群初始化失敗”

  • January 19, 2022

(**注意:**此問題已從其原始形式強制改寫,因此它反映了實際問題,並將幫助其他人找到相同問題的解決方案)。


我仍然無法在我的 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

見相關:

我已將此情況報告給安裝團隊寫了一個 wiki 條目來描述它。見博文

該問題最終通過以下方式解決:

  • 編輯COMSPEC環境變數
  • 解除安裝 PostgreSQL
  • 重新啟動
  • 重新安裝 PostgreSQL

儘管在此之前還有很多實際上不需要解決此問題,包括手動完全手動徹底解除安裝 PostgreSQL。

現在我只想找到編寫修改此環境變數的程序的人。

引用自:https://dba.stackexchange.com/questions/28836