簡體   English   中英

如何允許遠程訪問 PostgreSQL 數據庫

[英]How to Allow Remote Access to PostgreSQL database

我在 Windows 7 中安裝了 PostgreSQL 9.2,在虛擬機中安裝了 Windows XP,如何連接這兩個數據庫並允許遠程訪問以從兩個系統添加/編輯數據庫?

為了遠程訪問 PostgreSQL 數據庫,您必須設置兩個主要的 PostgreSQL 配置文件:

配置文件
pg_hba.conf

這里是關於如何設置它們的簡要說明(請注意,以下說明純粹是指示性的:要安全地配置機器,您必須熟悉所有參數及其含義)

首先配置 PostgreSQL 服務以偵聽 Windows 7 機器上所有網絡接口上的端口 5432:
打開文件postgresql.conf (通常位於C:\\Program Files\\PostgreSQL\\9.2\\data)並設置參數

listen_addresses = '*'

檢查WindowsXP虛擬機的網絡地址,並在pg_hba.conf文件(與postgresql.conf同目錄)中設置參數,使postgresql可以接受來自虛擬機主機的連接。
例如,如果Windows XP的機器有192.168.56.2 IP地址,則在pg_hba.conf文件中添加:

host all all 192.168.56.1/24 md5

這樣,PostgreSQL 將接受來自網絡 192.168.1.XXX 上所有主機的連接。

在 Windows 7 中重新啟動 PostgreSQL 服務(服務-> PosgreSQL 9.2:右鍵單擊並重新啟動服務)。 在 Windows XP 機器上安裝 pgAdmin 並嘗試連接到 PostgreSQL。

postgresql.conf 中設置listen_addresses = '*'

編輯pg_hba.conf文件並在文件的最后添加以下條目:

host    all             all              0.0.0.0/0                       md5
host    all             all              ::/0                            md5

查找配置文件, 此鏈接可能對您有所幫助。

除了上述建議 (1) 修改配置文件 pg_hba.conf 和 (2) postgresql.conf 和 (3) 重新啟動 PostgreSQL 服務之外,某些 Windows 計算機可能還需要在端口上允許傳入 TCP 流量(通常為5432 )。

為此,您需要打開 Windows 防火牆並為端口添加入站規則(例如 5432)。

前往控制面板\\系統和安全\\Windows Defender 防火牆 > 高級設置 > 操作(右側選項卡)> 入站規則 > 新規則... > 端口 > 特定本地端口並輸入您使用的端口,通常為 5432 > (默認設置為休息並輸入您喜歡的任何名稱)

Windows 防火牆設置

現在,嘗試從客戶端計算機上的 pgAdmin 再次連接。 不需要重新啟動服務。

如果使用 PostgreSql 9.5.1,請按照以下配置:

  1. 在 pgAdmin 中打開 hg_hba.conf 管理員
  2. 選擇你的路徑,並打開它,然后添加一個設置pg_hba.conf
  3. 重啟 postgresql 服務

您必須將其添加到 pg_hba.conf 並重新啟動 PostgreSQL。

托管所有所有 192.168.56.1/24 md5

這適用於 VirtualBox 和僅主機適配器啟用。 如果您不使用 Virtualbox,則必須替換 IP 地址。

這是針對您使用 AWS 雲計算(EC2 或 RDS 機器)的特定情況的補充答案。

除了執行上面建議的所有操作之外,在使用 AWS 雲計算時,您還需要以一種允許您訪問端口的方式設置入站規則。 請查看這篇文章,它對 EC2 和 RDS 有效。

對於 PostgreSQL 13,出於某種原因,我無法對遠程連接使用 scram-sha-256 加密。 這奏效了。

# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             all                                     scram-sha-256 # "local" is for Unix domain socket connections only
host    all             all             127.0.0.1/32            scram-sha-256 # IPv4 local connections:
host    all             all             ::1/128                 scram-sha-256 # IPv6 local connections
local   replication     all                                     scram-sha-256 # Allow replication connections from localhost, by a user with the replication privilege.
host    replication     all             127.0.0.1/32            scram-sha-256
host    replication     all             ::1/128                 scram-sha-256
host    all             all             0.0.0.0/0               trust # <---------- remote connections

在 Windows 上重新啟動服務的快速快捷方式:

1)按Windows鍵+ R

2) 輸入“services.msc”

在此處輸入圖片說明

3) 按名稱排序

4) 找到“PostgreSQL”服務並重新啟動它。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM