Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

新手指南:如何找回 PostgreSQL 的忘記密碼

最後更新:2025年3月4日資料庫

本文為 PostgreSQL 基本教學,第 5 篇:

  1. 新手指南: PostgreSQL 使用流程介紹
  2. PostgreSQL 安裝方式一覽:EDB、Chocolatey、Scoop
  3. 新手指南:如何啟動 PostgreSQL 伺服器
  4. 新手入門:如何使用 PostgreSQL 的命令行界面(psql)
  5. 新手指南:如何找回 PostgreSQL 的忘記密碼 👈 所在位置

在使用 PostgreSQL 的過程中,忘記用戶密碼是一個常見問題。

特別是當您需要使用超級用戶(如 postgres)進行資料庫管理時,無法登入可能會影響操作進度。不過,不必擔心!

本文將一步步帶您了解如何在忘記 PostgreSQL 密碼時進行重設,讓您快速恢復對資料庫的管理權限。


找回密碼的原則

PostgreSQL 本身並未提供直接的密碼找回功能,但您可以通過修改系統設置或以其他方式繞過身份驗證,進而重設密碼。

以下是解決問題的基本流程:

  1. 臨時禁用身份驗證
  2. 連接資料庫並重設密碼
  3. 恢復正常設定

修改身份驗證方式

首先,您需要修改 PostgreSQL 的身份驗證配置文件 pg_hba.conf,將身份驗證方式設置為 trust,以繞過密碼檢查。

找到配置文件

pg_hba.conf 文件通常位於 PostgreSQL 的數據目錄中。例如:

  • Linux/macOS:
    • /var/lib/pgsql/<版本>/data/pg_hba.conf
    • /etc/postgresql/<版本>/main/pg_hba.conf
  • Windows:
    • C:\Program Files\PostgreSQL\<版本>\data\pg_hba.conf

編輯配置文件

打開 pg_hba.conf,找到類似以下的行:

host    all             all             127.0.0.1/32            md5

將 md5 修改為 trust:

host    all             all             127.0.0.1/32            trust

重啟伺服器

修改完成後,重啟 PostgreSQL 伺服器以應用更改:

  • Linux/macOS:
sudo systemctl restart postgresql
  • Windows:使用「服務」工具或命令列
net stop postgresql-x64-<版本>
net start postgresql-x64-<版本>

連接資料庫並重設密碼

臨時設置為 trust 後,您可以以任何用戶身份直接連接到資料庫,無需密碼。

\使用 psql 連接

打開命令列並輸入:

psql -U postgres

如果成功進入 psql,您將看到提示符 postgres=#。

重設密碼

在 psql 中執行以下指令重設密碼:

ALTER USER postgres PASSWORD '<新密碼>';

範例:

ALTER USER postgres PASSWORD 'mynewpassword';

執行完成後,密碼將被更新。


恢復身份驗證設置

完成密碼重設後,您需要將 pg_hba.conf 文件中的身份驗證方式恢復為原來的設定(如 md5 或 scram-sha-256),以確保系統安全性。

修改回原始設置

將 trust 恢復為原本的身份驗證方式,例如:

host    all             all             127.0.0.1/32            md5

重啟伺服器

再次重啟 PostgreSQL 伺服器,使更改生效:

  • Linux/macOS:
sudo systemctl restart postgresql
  • Windows:
net stop postgresql-x64-<版本> 
net start postgresql-x64-<版本>

注意事項

  1. 權限管理
    僅限系統管理員或具有伺服器存取權限的使用者才能修改 pg_hba.conf 和重設密碼。
  2. 安全性考量
    • 使用 trust 僅限臨時解決問題,完成密碼重設後務必恢復安全的身份驗證方式。
    • 為超級用戶設置強密碼,防止未授權存取。
  3. 備份配置文件
    修改任何配置文件前,建議先備份原文件,以便在需要時還原。

結語

透過修改身份驗證方式並重設密碼,您可以輕鬆找回 PostgreSQL 的使用權限。

雖然此方法有效,但切記在操作完成後恢復系統安全設置,避免引發安全隱患。

希望本文能幫助您快速解決密碼忘記的問題,順利管理您的 PostgreSQL 資料庫!

目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

資料庫

目錄

  • 找回密碼的原則
  • 修改身份驗證方式
  • 找到配置文件
  • 編輯配置文件
  • 重啟伺服器
  • 連接資料庫並重設密碼
  • \使用 psql 連接
  • 重設密碼
  • 恢復身份驗證設置
  • 修改回原始設置
  • 重啟伺服器
  • 注意事項
  • 結語