[英]Connection refused to Postgresql
Here is the code I wrote for connecting Postgresql using psycopg2. 这是我为使用psycopg2连接Postgresql而编写的代码。 My psql and pgadminIII is also running. 我的psql和pgadminIII也在运行。
import psycopg2
connection = psycopg2.connect(dbname="gps_heatmap",user="postgres",host="localhost",password="1234")
cursor = connection.cursor()
cursor.execute("DROP TABLE IF EXISTS roads")
cursor.execute("CREATE TABLE roads (" +
"id SERIAL PRIMARY KEY," +
"name VARCHAR," +
"centerline GEOMETRY)")
cursor.execute("CREATE INDEX ON roads USING GIST(centerline)")
connection.commit()
But following error comes: 但是出现以下错误:
OperationalError Traceback (most recent call last)
<ipython-input-14-03e3f214b83e> in <module>()
1 import psycopg2
2
----> 3 connection = psycopg2.connect(dbname="gps_heatmap",user="postgres",host="localhost",password="1234",port="5432")
4 cursor = connection.cursor()
5
C:\Users\*******\Anaconda3\lib\site-packages\psycopg2\__init__.py in connect(dsn, database, user, password, host, port, connection_factory, cursor_factory, async, **kwargs)
162 for (k, v) in items])
163
--> 164 conn = _connect(dsn, connection_factory=connection_factory, async=async)
165 if cursor_factory is not None:
166 conn.cursor_factory = cursor_factory
OperationalError: could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
I edited the pg_hbf.conf as: host all all 0.0.0.0/0 md5 我将pg_hbf.conf编辑为:host all all 0.0.0.0/0 md5
Again,same error repeated 再次,重复相同的错误
Clarification 澄清
The answer below was accepted, however, it was not the solution to the problem... the problem was that the postgresql server was configured for port 5433, not the default port of 5432. This should fix the problem: 下面的答案被接受,但是,它不是问题的解决方案...问题是postgresql服务器配置为端口5433,而不是默认端口5432.这应该解决问题:
connection = psycopg2.connect(database="gps_heatmap", user="postgres", password="1234", host="localhost", port=5433)
Original answer 原始答案
Try replacing dbname="gps_heatmap"
with database="gps_heatmap"
as the former is intended for use within a connection string and the latter when keyword arguments are passed to psycopg2.connect()
: 尝试用database="gps_heatmap"
替换dbname="gps_heatmap"
,因为前者用于连接字符串,后者当关键字参数传递给psycopg2.connect()
:
connection = psycopg2.connect(database="gps_heatmap", user="postgres", host="localhost", password="1234")
Or you could use a connection string: 或者您可以使用连接字符串:
connection = psycopg2.connect("dbname=gps_heatmap user=postgres host=localhost password=1234")
What worked for me was to open Services (search it in Windows), and then look for the postgres service: postgresql-x64-10 in my case. 对我有用的是打开服务(在Windows中搜索),然后寻找postgres服务:postgresql-x64-10在我的情况下。
After that, the error was gone. 之后,错误消失了。
My error originated by installing MySQL after PostgreSQL, I guess there was a change in the ports or something, but this fixed it. 我的错误源于在PostgreSQL之后安装MySQL,我猜这些端口有什么变化,但这解决了它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.