簡體   English   中英

Postgresql服務器遠程連接

[英]Postgresql server remote connection

我正在嘗試在ubuntu上設置一個postgresql 9.1服務器,用於遠程訪問數據。 我已經正確安裝了postgres,服務器進程正在運行,我正在嘗試對其進行配置,以便我可以通過Internet從局域網外的其他幾台計算機遠程訪問服務器。

我已經修改了我的pg_hba.conf:

host    all     all     0.0.0.0     trust

和postgresql.conf:

listen_addresses = '*'
port = 5432

我還修改了我的iptables以接受端口5432上的連接。

當我嘗試在python上使用psycopg2連接時:

conn=psycopg2.connect('host=XX.XX.XX.XX port=5432 dbname=postgres user=myUser password=mypassword')

我收到以下錯誤:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/psycopg2/__init__.py", line 179, in connect
connection_factory=connection_factory, async=async) 
psycopg2.OperationalError: could not connect to server: Connection refused
Is the server running on host "XX.XX.XX.XX" and accepting
TCP/IP connections on port 5432?

我不確定我是否插入了正確的IP地址,我很好奇我將如何確切地知道在這里使用哪個IP地址連接到我的服務器。 我使用運行postgres服務器的計算機的公共IP,但我不確定是否正確。 或者還有其他一步我仍然缺席? 我知道這是不好的安全風格,但目前我想建立一個連接。 我的電腦也在路由器后面,所以我如何專門訪問我的服務器?

任何幫助非常感謝。

你的pg_hba.conf不應該使用trust trust意味着不需要密碼,我認為這不是你想要的。

這是正確的配置

host    all             all             0.0.0.0/0               md5

注意/0落后於0.0.0.0

完整的pg_hba.conf應該是這樣的: -

local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
host    all             all             0.0.0.0/0               md5

請注意, trust僅適用於local連接。 即對於運行postgresql服務器的機器上運行在localhost IP 127.0.0.1上的應用程序。

暫無
暫無

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

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