我無法使用python和psycopg2遠程連接到PostgreSQL:以postgres用戶身份連接到PostgreSQL時出現連接錯誤?
這是我的代碼。
>>> import psycopg2
>>> conn_string = "host='localhost' dbname='mydb' user='postgres'"
>>> print "Connecting to database\n ->%s" % (conn_string)
Connecting to database
->host='localhost' dbname='mydb' user='postgres'
>>> conn = psycopg2.connect(conn_string)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/tools/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect
conn = _connect(dsn, connection_factory=connection_factory, async=async)
psycopg2.OperationalError: could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
無法連接到服務器:連接被拒絕 是運行在主機上的服務器的「本地主機」(127.0.0.1)和接收端口5432 TCP/IP連接?
密碼未設置爲postgres用戶。
通常,我可以通過在主機上運行以下方法連接到數據庫。
1. SSH to box
2. su - postgres
3. psql
4. \c mydb
服務器運行PostgreSQL 9.1。
_I無法遠程連接到psql:除非您設置了一個您沒有告訴的SSH隧道,否則您甚至不用'host = localhost'嘗試。 – 2014-09-25 08:59:14
嗯,「*服務器是否在主機」localhost「(:: 1)上運行,並且在端口5432上接受 TCP/IP連接?*」? – 2014-09-25 13:34:25
@DanielVérité我發現新用戶在談論將ssh變成一個盒子時,似乎會說「遠程服務器」,然後將運行在遠程機器上的代碼與同一遠程主機上的數據庫建立連接。它是一個「遠程服務器」,即使遠程數據庫連接的目的是無關緊要的。這可能是這樣的情況,最後是通過筆記。 – 2014-09-25 13:35:47