背景 由於項目的需要,使用 資料庫,因此在Windows上安裝 資料庫。但是在安裝後,無法訪問本地資料庫,這個時候查看 目錄,沒有任何文件。而且安裝過程中,彈出提示框 Problem running post install step.Installation may not complete co ...
背景
由於項目的需要,使用PostgreSQL
資料庫,因此在Windows上安裝PostgreSQL
資料庫。但是在安裝後,無法訪問本地資料庫,這個時候查看/data
目錄,沒有任何文件。而且安裝過程中,彈出提示框
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。
解決方案
查看用戶
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