忘記密碼怎麼辦?
解決的辦法就是使用密碼以外的方式登入再給一個新的密碼。先決條件是你擁有該系統的管理者權限。
找到你的pg_hba.conf
,可能會在/etc/postgresql-9.1/pg_hba.conf
,像這樣的路徑下。
cd /etc/postgresql-9.1/
先備份一下
cp pg_hba.conf pg_hba.conf-backup
把下面這行放進檔案中(可以把其他行都註解掉):
local all all trust
重新啓動你的 PostgreSQL (以 Linux 為例)
sudo /etc/init.d/postgresql restart
如果服務無法順利啓動,且在 log 裡出現下面這個訊息的話
local connections are not supported by this build
那就把這行
local all all trust
改成這行
host all all 127.0.0.1/32 trust
你現在可以以任何使用者登入了。那就以超級使用者 postgres 登入吧(如果沒有被特別改過的話,應該是 postgres,有些系統會是 pgsql)
psql -U postgres
或
psql -h 127.0.0.1 -U postgres
(前面那行可能不會被認為是從 localhost 登入,所以要特別指出。)
重置你的密碼
ALTER USER my_user_name with password 'my_secure_password';
記得回存你的 pg_hba.conf,不然你的系統還是處在風險之中
cp pg_hba.conf-backup pg_hba.conf
再一次重啓系統,確認原來你的 pg_hba.conf 設定也有生效
sudo /etc/init.d/postgresql restart
用新的密碼登入,並且記好你的密碼
Last updated