遠端存取postgresql資料庫

遠端存取postgresql資料庫

我需要從運行 12.10 和 postgresql 9.1 的 DigitalOcean VPS 上的遠端電腦存取 postgresql 資料庫。

我該怎麼做呢?我注意到連接埠 5432 已關閉,如何開啟它?

答案1

若要開啟連接埠 5432,請編輯/etc/postgresql/9.1/main/postgresql.conf並更改

listen_addresses='localhost'

listen_addresses='*'

並重新啟動您的資料庫管理系統

invoke-rc.d postgresql restart

現在您可以連接

$ psql -h hostname -U username -d database

如果您無法驗證自己的身份,那麼您需要授予您的使用者存取資料庫的權限

編輯你的

/etc/postgresql/9.1/main/pg_hba.conf

並添加

host all all all md5

(這是為了廣泛開放的訪問。如需更嚴格的控制,請參閱pg_hba.conf 文檔並根據您的需求進行調整)。

此後您還需要重新加載

invoke-rc.d postgresql reload

我不需要提及這是一個基本配置,現在您應該考慮修改您的防火牆並提高 DBMS 的安全性。

答案2

如果曾經有效的話,這將不再有效:

主機所有所有* md5

正確的可能行是:

主機全部全部 0.0.0.0/0 md5 #ipv4 範圍

託管所有所有 ::0/0 md5 #ipv6 範圍

主機所有所有所有md5#所有ip

來源

答案3

對於「伺服器沒有監聽」的訊息,發生在我身上的是,我沒有刪除存檔 postgresql.conf 上的 # 我的意思是:

#listen_addresses='本地主機'

到:

監聽地址='*'

(對不起我的英文不好)。

答案4

配置完成後,需設定:

/etc/postgresql/10/main/postgresql.conf

# Connection Settings -

listen_addresses = '*'          # what IP address(es) to listen on;

/etc/postgresql/10/main/pg_hba.conf

# IPv4 local connections:
host    all             all             0.0.0.0/0           md5

重新啟動您的伺服器:

sudo /etc/init.d/postgresql restart

相關內容