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


背景

由於項目的需要,使用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM