我更改postgres密碼爲NULL爲我的本地計算機上的用戶postgres。在SQL窗口中使用以下命令: ALTER ROLE postgres WITH PASSWORD NULL;空密碼失敗登錄postgres 9.3窗口
現在,我不能再次登錄,因爲它要求輸入密碼並且不接受任何內容。我無法運行SQL查詢來更改密碼,因爲我現在沒有登錄。我可以通過Windows命令提示符來更改密碼嗎?
我更改postgres密碼爲NULL爲我的本地計算機上的用戶postgres。在SQL窗口中使用以下命令: ALTER ROLE postgres WITH PASSWORD NULL;空密碼失敗登錄postgres 9.3窗口
現在,我不能再次登錄,因爲它要求輸入密碼並且不接受任何內容。我無法運行SQL查詢來更改密碼,因爲我現在沒有登錄。我可以通過Windows命令提示符來更改密碼嗎?
您可以編輯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
(本地主機)
我試圖改變配置文件列表中的文本:localhost:5432:*:postgres:trust
但這不起作用。它有什麼問題嗎?還試過localhost:5432:*:postgres:iden,但這也不起作用。 –
Cagg
2014-09-22 12:16:14
你的字符串的格式不是'pg_hba.conf'所需的格式。嘗試我在答案中發佈的字符串。更改爲'pg_hba.conf'後 - 重新啓動服務器。 – 2014-09-22 12:19:01
我像這樣編輯了文件底部的行,現在它可以工作。感謝您的幫助:#IPv4本地連接: 主機全部全部127.0.0.1/32信任 #IPv6本地連接: 主機全部:: 1/128信任 – Cagg 2014-09-22 12:49:50
首先去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的,並且不使用密碼
進入屬性連接本地主機數據庫
變化定義選項卡
然後再次改變方法信任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"
http://dba.stackexchange.com/q/19643/7788,http://stackoverflow.com/q/10845998/398670。 – 2014-09-22 12:43:18
如果PostgreSQL發現你的'pg_hba.conf'具有'trust'認證,但它不知道你故意不這樣做(比如創建另一個超級用戶之後),否則PostgreSQL可能會阻止你這樣做。 – 2014-09-22 12:45:49