【发布时间】:2013-12-18 15:03:52
【问题描述】:
我在此代码片段中收到“解密失败或错误记录 mac”错误:
conn = psycopg2.connect(...)
cursor = conn.cursor()
cursor.execute("SELECT id, ip FROM schema.table;")
rows = cursor.fetchall()
cursor.close()
conn.commit()
conn.close()
这在线程的 run() 方法中被调用,在 while(True) 循环中多次调用。 我只是使用 psycopg2 驱动程序打开到我的 PostgreSQL 数据库的连接。
您知道在 Python 中将数据库连接打开到线程中有多安全吗? 我不知道是什么引发了这个错误。
【问题讨论】:
-
循环的每次迭代都会引发异常吗?哪一行是真正提高它的那一行?
-
你好,它是在 cursor.execute("SELECT id, ip FROM schema.table;") 提出的。它不是在每次迭代中都被抛出,它只做了几次正确的迭代,然后引发一次错误并停止执行。
-
好的,看来我已经解决了这个问题。我创建了太多的连接,似乎我的内存不足或什么的。 conn = None 之后 conn.close() 成功了。感谢您的回复。
-
您可以发布您的评论作为答案,甚至在一段时间后接受它。在这种情况下,人们可以从问题中看到问题已经解决。如果人们在问题或答案上点击 +1,您将获得积分(像这样)。
-
我在尝试在 Python 中运行 Multiprocessing 和 Postgresql 时遇到了类似的问题。我注意到我在所有生成的进程中都使用了相同的连接,因此它失败了。我将引擎传递给不同的进程,然后在它们各自的进程中创建新的连接。成功了!
标签: python multithreading postgresql encryption database-connection