Windows安裝PostgreSQL數據庫 沒法初始化數據庫問題

背景

因爲項目的須要,使用PostgreSQL數據庫,所以在Windows上安裝PostgreSQL數據庫。可是在安裝後,沒法訪問本地數據庫,這個時候查看/data目錄,沒有任何文件。並且安裝過程當中,彈出提示框sql

Problem running post-install step.Installation may not complete correctly the database cluster initialisation failed.
意思是:安裝過程當中,初始化數據庫集羣失敗數據庫

系統環境

  • 操做系統:Windows 10 Pro
  • PostgreSQL版本:10.4-1
  • 帳號:非超級管理員帳號

緣由

在Windows 10中,若是用的是Microsoft帳號,則不是超級管理員,這個時候沒法建立用戶,致使經過安裝包進行安裝時,沒法建立相應的DB用戶。並且在帳號中沒法看到postgres這個用戶,所以可猜想出,權限不足時,沒法建立相應用戶的帳號,而無相應帳號時,沒法初始化DB。post

解決方案

查看用戶

net  user

建立Postgres用戶

net user postgres postgres /add

在數據庫根目錄創建data目錄

D:\Dev\PostgreSQL\10>md data

移除超級管理員對data目錄的權限

D:\Dev\PostgreSQL\10>cacls data /e /t /r administrator
處理目錄:D:\Dev\PostgreSQL\10\data

將data目錄的權限賦給postgres用戶

D:\Dev\PostgreSQL\10>cacls data /e /t /r postgres:C
處理目錄:D:\Dev\PostgreSQL\10\data

初始化數據庫

D:\Dev\PostgreSQL\10\bin>initdb.exe -D ../data -E UTF-8 --locale=chs -U postgres -W

初始化後,須要輸入新的用戶密碼,用於登陸數據庫。
操作系統

啓動數據庫

D:\Dev\PostgreSQL\10\bin>pg_ctl.exe -D D:\Dev\PostgreSQL\10\data -l logfile start

註冊PostgresSQL服務

D:\Dev\PostgreSQL\10\bin>pg_ctl.exe register -N PostgreSQL -D D:\Dev\PostgreSQL\10\data

經常使用命令

啓動PostgresSQL服務

net start PostgreSQL

中止PostgresSQL服務

net stop PostgreSQL

刪除PostgresSQL服務

D:\Dev\PostgreSQL\10\bin>pg_ctl.exe unregister -N PostgreSQL
相關文章
相關標籤/搜索