允許其他 PC 連接到 PostgreSQL 資料庫的設定(Windows 版)

更新頁 :
頁面創建日期 :

操作環境

PostgreSQL的
  • PostgreSQL 15的
Windows(伺服器)
  • Windows 伺服器 2019
Windows(用戶端)
  • 窗戶11

先決條件

窗戶
  • Windows 伺服器 2019
  • Windows 伺服器 2016
  • 其他版本可能可用,但不受官方支援。

防火牆

在 Windows 中,防火牆會阻止標準埠以外的連接。 必須將其配置為能夠在用於連接到 PostgreSQL 的埠上進行連接。

登錄到伺服器端 Windows 環境後,從開始功能表中鍵入「防火牆」,然後選擇 打開具有高級安全性的Windows Defender防火牆。

當屏幕打開時,從左側功能表中選擇“入站規則”,然後從右側功能表中按兩下“新建規則...”。

對於「規則類型」,請選擇「埠」。

對於「協定和埠」,請選擇“TCP”作為協定。 對於埠,輸入預設值 5432。 如果您在 PostgreSQL 安裝中指定了不同的埠號,請輸入該埠號。

對於“操作”,選擇“允許連接”。

在「配置檔」中,選中「域」和「私有」。 我認為你不太可能讓一個資料庫在一個「公共」環境中被訪問,而這個環境會允許不特定的人訪問它。

輸入可選取名稱和描述。 請輸入,以便於理解打開港口的目的。

添加后,它將出現在清單中。

postgresql.conf文件

檢查 postgresql.conf 中的設置。 我認為您不需要在版本 15 中更改它。

以下位置有一個檔,因此請使用記事本應用程式打開它。 請檢查路徑,因為它因版本而異。

C:\Program Files\PostgreSQL\15\data\postgresql.conf

listen_addresses 查找調用的參數。 如果按以下方式設定,則無需變更它:

listen_addresses = '*'

pg_hba.conf

默認情況下,只能從本地環境訪問資料庫。

以下位置有一個檔,因此請使用記事本應用程式打開它。 請檢查路徑,因為它因版本而異。

C:\Program Files\PostgreSQL\15\data\pg_hba.conf

您可能會在更正時出錯,因此請在更改檔之前複製並備份檔,以防萬一。

如果滾動到底部,您將找到以下行: 這表明 IPv4 只能在本地訪問。

# TYPE  DATABASE        USER            ADDRESS                 METHOD
  :
host    all             all             127.0.0.1/32            scram-sha-256
  :

將此 ADDRESS 設置為單個或範圍,以便可以從其他 PC 存取它。 您設置的值取決於您正在構建的網路。 如果您不確定,請 0.0.0.0/0 允許all with 或 samenet type 以允許與伺服器相同的網路的所有範圍。

配置舉例

# TYPE  DATABASE        USER            ADDRESS                 METHOD
  :
host    all             all             192.168.0.0/24          scram-sha-256
  :

重新啟動服務

pg_hba.conf 這些配置檔僅在 PostgreSQL 啟動時讀取,因此您需要重新啟動服務。 順便說一句,它是在PostgreSQL啟動時載入的,因此如果您重新啟動Windows,它將在那個時間載入。

打開開始功能表後,鍵入“服務”以啟動它。

從中間清單中找到並選擇“postgresql-x64-15 - PostgreSQL Server 15”。 請注意,名稱會因版本而異。 選擇后,按兩下左側的「重新啟動服務」。

檢查來自其他PC的連接

讓我們看看我們是否可以從另一台PC連接到資料庫。 連接目標資訊因環境而異,因此此處僅介紹該過程。 這次我使用 pgAdmin 進行連接,但我認為您也可以連接其他資料庫訪問工具。

在與資料庫伺服器分開的用戶端PC上啟動pgAdmin后,右鍵按下伺服器並選擇“註冊>伺服器...”。

在「常規」選項卡上,「名稱」應為可説明您識別伺服器的名稱。

選擇「連接」選項卡。 輸入「主機名/位址」、「維護數據包」、「使用者名」和「密碼」 密碼。 如果您不想每次都輸入密碼,請打開“保存密碼”。 順便說一句,pdAdmin可能無法解析Host的名稱,因此在這種情況下,請直接指定IP位址。

根據需要填寫其他輸入欄位。 完成後,按下「保存」按鈕。

如果可以連接到目標伺服器的資料庫,則驗證完成。