使用密碼連線到 PostgreSQL
本文展示了使用密碼連線 PostgreSQL 的各種方法。它可以通過命令列、pgpass
檔案、PGPASSWORD
環境變數或連線字串。
使用命令列介面 (CLI) 通過密碼連線到 PostgreSQL
如果你的機器上安裝了 PostgreSQL,你可以嘗試不同的方法來連線資料庫。一種簡單的方法是在命令列中輸入 psql
,它會詢問你 admin
使用者的密碼。
如果你在命令中只輸入 psql
而沒有提及使用者名稱,系統將詢問你 PostgreSQL 的管理員使用者密碼,如下所示。
C:\Users\Admin>psql
Password for user Admin:
如果你想使用其他帳戶登入,則需要使用標誌 -U
,然後提供使用者名稱,如下所示。
C:\Users\Admin>psql -U postgres
Password for user postgres:
psql (14.2)
WARNING: Console code page (437) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
Type "help" for help.
postgres=#
在這裡,CLI 要求輸入使用者 postgres
的密碼。登入需要兩個步驟。
首先,在 psql
命令中定義使用者名稱,然後當 CLI 詢問時,你輸入密碼。但是我們可以使用一行命令直接連線到 PostgreSQL。
為此,我們需要設定環境變數 PGPASSWORD
。
在 Windows 中:
C:\Users\Admin>set PGPASSWORD=root
在 Linux 中:
export PGPASSWORD=root
如果我們想連線到 psql
,它將從 PGPASSWORD
獲取密碼,該密碼現在在環境中可用。
C:\Users\Admin>psql -U postgres
psql (14.2)
WARNING: Console code page (437) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
Type "help" for help.
你看,現在它不需要輸入密碼來連線 psql
。從此處瞭解有關 PostgreSQL 環境變數的更多資訊。
在 pgpass.conf
檔案中定義密碼以登入 PostgreSQL
在 PostgreSQL 的 APPDATA
資料夾中,有一個名為 pgpass.conf
的檔案。你可以在那裡定義你的密碼。
此外,你可以使用連線引數 passfile
定義你的密碼檔案。檔案格式如下。
hostname:port:database:username:password
這個結構在 PostgreSQL 官方頁面這裡上提到過。
它知道使用者有效的資料庫以及該特定使用者的密碼。
使用帶密碼的連線字串連線到 PostgreSQL
當你獲得不在 localhost
中的線上資料庫或遠端資料庫時,你需要通過連線字串進行連線。連線字串包含一段使用者名稱、密碼、資料庫名稱、埠和主機地址。
連線字串的格式如下。
postgresql://<username>:<password>@<host><port>/<database_name>?sslmode=require
如果你使用 localhost
,你不需要對遠端資料庫使用 sslmode
。在 Python、C++ 或 Java 專案中使用 PostgreSQL 資料庫時,此方法最有用。
因此,使用連線字串連線資料庫(本地)的命令如下。
C:\Users\Admin>psql postgresql://postgres:root@localhost:5432/postgres
psql (14.2)
WARNING: Console code page (437) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
Type "help" for help.
postgres=#
這裡是可用於客戶端身份驗證的方法列表。它來自 PostgreSQL 官方文件。