忘記 PostgreSQL Windows 密碼
今天早上我一直在嘗試在我的 Windows 7 Professional 桌面上連接 PostgreSQL 數據庫。
預設值為’postgres’,但果然我忘記了我最初安裝它時使用的密碼。
我用Google搜尋了一個與重置密碼相關的文章。我遵循了這些步驟,但最終結果與文章中提到的有所不同。我用了-
net user postgres postgres
重置我的數據庫的密碼,但我得到的不是成功消息:
“發生系統錯誤 5。訪問被拒絕。”
系統錯誤。如何避免此錯誤並重置密碼?
(注意:這與從 EDB 安裝程序中使用 PostgreSQL 9.2 或更高版本的讀者無關,現在使用
NETWORK SERVICE
.我曾經
net user postgres postgres
為我的數據庫重置密碼,但我收到的不是成功消息"System error 5 has occurred. Access is denied."
您已重置(或嘗試重置)服務帳戶密碼。出於安全原因,PostgreSQL 不會以管理員身份執行,安裝程序通常在 PostgreSQL 9.1 和更早版本1中使用“postgres”使用者帳戶設置它。在 Windows 上,如果不將使用者密碼保存在系統資料庫中,您將無法以使用者身份啟動服務,因此安裝程序就是這樣做的。
如果您更改 Windows 使用者帳戶的密碼
postgres
,則 PostgreSQL 服務將無法再啟動。所以不要這樣做,您必須修復服務配置以儲存更新的密碼。謝天謝地,我認為另一個錯誤阻止了你這樣做。看起來您可能正在執行命令提示符,而沒有在非特權 Windows 使用者帳戶或具有 UAC 的電腦上使用“以管理員身份執行”,因此它沒有以更改
postgres
使用者密碼所需的訪問權限執行。在您嘗試更改該密碼之前,請確保它確實是您想要做的。你想在這裡解決什麼問題?您是否正在嘗試安裝數據庫更新或其他要求
postgres
Windows 使用者密碼的東西?您很可能只是想登錄數據庫。為此,您使用儲存在其自身數據庫中的(不幸的是完全不相關的)密碼。由於您失去/忘記了它,因此您必須重置它:
- 找到你的
pg_hba.conf
,通常在C:\Program Files\PostgreSQL\9.1\data\pg_hba.conf
- 如有必要,設置它的權限,以便您可以修改它;您的使用者帳戶可能無法執行此操作,除非您使用屬性對話框中的安全選項卡通過使用管理員覆蓋來賦予自己該權限。或者,在開始菜單中找到記事本/記事本++,右鍵點擊,選擇“以管理員身份執行”,然後使用文件->打開以
pg_hba.conf
這種方式打開。- 編輯它以將主機“127.0.0.1/32”上的使用者“postgres”的“主機”行設置為“信任”。如果該行不存在,您可以添加該行;只需插入:
host all postgres 127.0.0.1/32 trust host all postgres ::1/128 trust # if IPv6 is in use
在任何其他行之前。(您可以忽略註釋,以 開頭的行
#
)。
- 從服務控制面板重新啟動 PostgreSQL 服務(開始->執行->
services.msc
)- 使用 psql 或 PgAdmin-III 或任何您喜歡的方式連接
ALTER USER postgres PASSWORD 'postgres'
- 刪除您添加的行
pg_hba.conf
或將其更改回- 再次重新啟動 PostgreSQL。
請參閱:如何在 Windows 上重置 PostgreSQL 的 postgres 密碼?
- 9.2現在用的是
NETWORKSERVICE
賬號,不需要密碼,所以這個問題就解決了。