这是我为使用psycopg2连接Postgresql而编写的代码。我的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()
但是出现以下错误:
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?
我将pg_hbf.conf编辑为: 主持所有0.0.0.0/0 md5
同样,重复同样的错误
答案 0 :(得分:2)
<强>澄清强>
下面的答案被接受,但是,它不是问题的解决方案......问题是postgresql服务器配置为端口5433,而不是默认端口5432.这应该解决问题:
connection = psycopg2.connect(database="gps_heatmap", user="postgres", password="1234", host="localhost", port=5433)
原始回答
尝试将dbname="gps_heatmap"
替换为database="gps_heatmap"
,因为前者旨在用于连接字符串,而后者则将关键字参数传递给psycopg2.connect()
:
connection = psycopg2.connect(database="gps_heatmap", user="postgres", host="localhost", password="1234")
或者您可以使用连接字符串:
connection = psycopg2.connect("dbname=gps_heatmap user=postgres host=localhost password=1234")
答案 1 :(得分:0)
对我有用的是打开服务(在Windows中搜索),然后查找postgres服务:在我的情况下是postgresql-x64-10。
之后,错误消失了。
我的错误源于在PostgreSQL之后安装MySQL,我猜这些端口有什么变化,但这解决了。