2014-09-22 43 views
0

我更改postgres密碼爲NULL爲我的本地計算機上的用戶postgres。在SQL窗口中使用以下命令: ALTER ROLE postgres WITH PASSWORD NULL;空密碼失敗登錄postgres 9.3窗口

現在,我不能再次登錄,因爲它要求輸入密碼並且不接受任何內容。我無法運行SQL查詢來更改密碼,因爲我現在沒有登錄。我可以通過Windows命令提示符來更改密碼嗎?

+0

http://dba.stackexchange.com/q/19643/7788,http://stackoverflow.com/q/10845998/398670。 – 2014-09-22 12:43:18

+0

如果PostgreSQL發現你的'pg_hba.conf'具有'trust'認證,但它不知道你故意不這樣做(比如創建另一個超級用戶之後),否則PostgreSQL可能會阻止你這樣做。 – 2014-09-22 12:45:49

回答

1

您可以編輯pg_hba.conf文件啓用trust(無密碼)驗證方法localhost。詳情點擊這裏:http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html

添加

host all    all    127.0.0.1/32   trust 

pg_hba.conf文件的開始將使無密碼登錄從127.0.0.1/32(本地主機)

+0

我試圖改變配置文件列表中的文本:localhost:5432:*:postgres:trust
但這不起作用。它有什麼問題嗎?還試過localhost:5432:*:postgres:iden,但這也不起作用。 – Cagg 2014-09-22 12:16:14

+1

你的字符串的格式不是'pg_hba.conf'所需的格式。嘗試我在答案中發佈的字符串。更改爲'pg_hba.conf'後 - 重新啓動服務器。 – 2014-09-22 12:19:01

+0

我像這樣編輯了文件底部的行,現在它可以工作。感謝您的幫助:#IPv4本地連接: 主機全部全部127.0.0.1/32信任 #IPv6本地連接: 主機全部:: 1/128信任 – Cagg 2014-09-22 12:49:50

1

首先去pg_hba.conf文件並打開它任何編輯器(記事本或記事本++)。

地點

的pg_hba.conf主要是

C:\Program Files\PostgreSQL\9.3\data 

更改方法MD5信任

#TYPE DATABASE  USER   ADDRESS     METHOD 
# IPv4 local connections: 
host all    all    127.0.0.1/32   trust 
# IPv6 local connections: 
host all    all    ::1/128     trust 

而不是

# TYPE DATABASE  USER   ADDRESS     METHOD 
# IPv4 local connections: 
host all    all    127.0.0.1/32   md5 
# IPv6 local connections: 
host all    all    ::1/128     md5 

然後保存。

運行命令提示符管理員,並轉到

C:\Program Files\PostgreSQL\9.3\bin

目錄通過CMD。

運行的重載Postgres的服務命令

pg_ctl.exe reload -D "C:\Program Files\PostgreSQL\9.3\data" 

得pgAdmin的,並且不使用密碼

Start pgadmin

進入屬性連接本地主機數據庫

Open properties

變化定義選項卡

Change password

然後再次改變方法信任MD5密碼。

# TYPE DATABASE  USER   ADDRESS     METHOD 
# IPv4 local connections: 
host all    all    127.0.0.1/32   md5 
# IPv6 local connections: 
host all    all    ::1/128     md5 

再次運行重載postgres的服務命令

pg_ctl.exe reload -D "C:\Program Files\PostgreSQL\9.3\data"