
我需要從運行 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