溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

解決postgresql初始化失敗的方法

發(fā)布時間:2020-07-31 11:34:38 來源:億速云 閱讀:2000 作者:清晨 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)解決postgresql初始化失敗的方法,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

背景

由于項目的需要,使用PostgreSQL數(shù)據(jù)庫,因此在Windows上安裝PostgreSQL數(shù)據(jù)庫。但是在安裝后,無法訪問本地數(shù)據(jù)庫,這個時候查看/data目錄,沒有任何文件。而且安裝過程中,彈出提示框。

Problem running post-install step.Installation may not complete correctly the database cluster initialisation failed.

意思是:安裝過程中,初始化數(shù)據(jù)庫集群失敗。

系統(tǒng)環(huán)境

·操作系統(tǒng):Windows 10 Pro

·PostgreSQL版本:10.4-1

·賬號:非超級管理員賬號

原因

在Windows 10中,如果用的是Microsoft賬號,則不是超級管理員,這個時候無法創(chuàng)建用戶,導(dǎo)致通過安裝包進(jìn)行安裝時,無法創(chuàng)建相應(yīng)的DB用戶。而且在賬號中無法看到postgres這個用戶,因此可猜測出,權(quán)限不足時,無法創(chuàng)建相應(yīng)用戶的賬號,而無相應(yīng)賬號時,無法初始化DB。

解決方案

查看用戶

net user

創(chuàng)建Postgres用戶

net user postgres postgres /add

在數(shù)據(jù)庫根目錄建立data目錄

D:\Dev\PostgreSQL\10>md data

移除超級管理員對data目錄的權(quán)限

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

將data目錄的權(quán)限賦給postgres用戶

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

初始化數(shù)據(jù)庫

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

初始化后,需要輸入新的用戶密碼,用于登錄數(shù)據(jù)庫。

解決postgresql初始化失敗的方法

啟動數(shù)據(jù)庫

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

解決postgresql初始化失敗的方法

注冊PostgresSQL服務(wù)

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

常用命令

啟動PostgresSQL服務(wù)

net start PostgreSQL

停止PostgresSQL服務(wù)

net stop PostgreSQL

刪除PostgresSQL服務(wù)

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

關(guān)于解決postgresql初始化失敗的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI