gpt4 book ai didi

python-2.7 - 如何关闭 psycopg2 和 postgresql 之间的旧连接?

转载 作者:行者123 更新时间:2023-11-29 14:15:59 25 4
gpt4 key购买 nike

我一直在使用 psycopg2 在多模块模型(我的博士论文)中控制本地 postgresql 服务器。

一段时间后,我在模型中遇到了一个错误,它保持了一个幽灵连接,当我使用与 postgresql 服务器的新连接运行模型时,它会调用模型的其他模块时造成了麻烦。

在我的电脑上同时显示多个postgresql连接,一共十个。较旧的连接在属性中具有 35 天前的最后修改。

我卸载了 python,postgresql 并删除了数据库,然后我重新安装了所有东西,问题仍然存在。

如有客人或帮助,不胜感激。

最佳答案

如果您是 super 用户,您可以按照答案 here. 中的说明关闭现有连接。

根据您的应用程序,您还可以考虑修改应用程序连接到数据库的方式。创建一个名为 mydb.py 的文件,内容如下:

import psycopg2
import psycopg2.pool
from contextlib import contextmanager

dbpool = psycopg2.pool.ThreadedConnectionPool(host=<<YourHost>>,
port=<<YourPort>>,
dbname=<<YourDB>>,
user=<<YourUser>>,
password=<<yourpassword>>,
)

@contextmanager
def db_cursor():
conn = dbpool.getconn()
try:
with conn.cursor() as cur:
yield cur
conn.commit()
except:
conn.rollback()
raise
finally:
dbpool.putconn(conn)

然后你的代码可以使用:

import mydb

def myfunction():
with mydb.db_cursor() as cur:
cur.execute("""Select * from blahblahblah...""")

关于python-2.7 - 如何关闭 psycopg2 和 postgresql 之间的旧连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47860864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com