溫馨提示×

溫馨提示×

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

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

忘記PostgreSQL賬號(hào)密碼如何解決

發(fā)布時(shí)間:2021-01-25 15:50:28 來源:億速云 閱讀:299 作者:Leah 欄目:開發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)忘記PostgreSQL賬號(hào)密碼如何解決,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1:定位pg_hba.conf文件位置

首先找到pg_hba.conf文件的位置,具體有下面這些方法:

方法1:locate定位pg_hba.conf文件的位置

$ locate pg_hba.conf
/usr/pgsql-9.5/share/pg_hba.conf.sample
/var/lib/pgsql/9.5/data/pg_hba.conf

方法2:find命令查找。

$ find / -name "pg_hba.conf" 2>%1 | grep -v "Permission denied"
/var/lib/pgsql/9.5/data/pg_hba.conf

2:修改pg_hba.conf配置文件

修改pg_hba.conf前最好做一個(gè)備份,這是一個(gè)良好的習(xí)慣,避免回滾的時(shí)候,你能輕松回撤所有操作。

#cp /var/lib/pgsql/9.5/data/pg_hba.conf /var/lib/pgsql/9.5/data/pg_hba.conf.20210125

在pg_hba.conf中找到類似下面這樣的地方:

# TYPE DATABASE USER ADDRESS  METHOD
 
# "local" is for Unix domain socket connections only
local all all   md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128  md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres  peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128  ident
 
# Allow access from all host to connect to this UAT server
host all all 0.0.0.0/0 md5

關(guān)于修改pg_hba.conf,如果你打算以socket方式在本機(jī)登錄數(shù)據(jù)庫,那么只需修改local這條記錄,將pg_hba.conf中的這個(gè)選項(xiàng)的的值從md5修改為trust

修改前
# "local" is for Unix domain socket connections only
local all all   md5
 
修改后
# "local" is for Unix domain socket connections only
local all all   trust

trust表示允許可信的本地連接。此時(shí)連接數(shù)據(jù)庫不用輸入密碼。

小知識(shí):

TYPE表示主機(jī)類型,它的取值有下面這些:

local :表示是unix-domain的socket連接

host :表示TCP/IP socket

hostssl: 表示SSL加密的TCP/IP socket

如果你打算以TCP/IP方式訪問數(shù)據(jù)庫,即psql -h227.0.0.1 -Upostgres這樣的方式,那么必須修改host的配置。具體如下所示:

修改前:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
 
 
修改后:
# IPv4 local connections:
host all all 127.0.0.1/32 trust

3: 重啟PostgreSQL服務(wù)

重啟PostgreSQL服務(wù)的方法很多,這里不做過多介紹,選擇你常用的方式即可。

# service postgresql-9.5 stop
Redirecting to /bin/systemctl stop postgresql-9.5.service
# service postgresql-9.5 start
Redirecting to /bin/systemctl start postgresql-9.5.service
# service postgresql-9.5 status
Redirecting to /bin/systemctl status postgresql-9.5.service

4:重置賬號(hào)postgres的密碼

使用psql無密碼登錄,修改用戶postgres的密碼

alter user postgres with password '新的密碼';

方式1:

#psql -U postgres

方式2:

#psql

關(guān)于兩者,如果ssh是用postgres用戶連接服務(wù)器的話,那么直接psql即可,如果是root用戶連接服務(wù)器的話,必須用psql -U postgres

-bash-4.2$ psql
psql (9.5.6)
Type "help" for help.
 
postgres=# alter user postgres with password 'xxxxxxxx';
ALTER ROLE

5:恢復(fù)pg_hba.conf配置文件的修改

6:重啟PostgreSQL服務(wù)

上述就是小編為大家分享的忘記PostgreSQL賬號(hào)密碼如何解決了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

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

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

AI