22

我收到错误 OperationalError: FATAL: sorry, too many clients have been when using psycopg2. 完成后,我在连接实例上调用 close 方法。我不确定是什么原因造成的,这是我对 python 和 postgresql 的第一次体验,但我在 php、asp.net、mysql 和 sql server 方面有几年的经验。

编辑:我在本地运行此程序,如果连接按应有的方式关闭,那么我一次只能打开 1 个连接。我确实有一个对数据库打开的 GUI,但即使关闭我也收到此错误。在我运行我的程序后不久就发生了。我有一个我调用的函数,它返回一个打开的连接,如下所示:

psycopg2.connect(connectionString)

谢谢

最终编辑:这是我的错误,我在错误上递归调用相同的方法,一遍又一遍地打开相同的方法。这是一个漫长的一天..

4

3 回答 3

15

这个错误意味着它所说的,有太多的客户端连接到 postgreSQL。

你应该问自己的问题:

  • 你是唯一连接到这个数据库的人吗?
  • 您正在运行图形 IDE 吗?
  • 你用什么方法连接?
  • 您是否在运行代码的同时测试查询?

这些事情中的任何一个都可能是问题所在。如果您是管理员,则可以增加客户端的数量,但如果程序将其挂起,那么这将无济于事。

有很多原因导致同时运行的客户端过多。

于 2009-02-06T06:24:20.207 回答
3

确保您的 db 连接命令不在任何类型的循环中。在我将 db.database() 从重复执行循环的程序中移出之前,我的脚本中出现了同样的错误。

于 2013-02-23T22:34:39.480 回答
1

这很简单意味着许多客户端同时向 PostgreSQL 进行事务。我在不同的 docker 容器中运行 Postgis 容器和 Django。因此,对于我的情况,重新启动数据库和系统容器解决了这个问题。

于 2020-11-09T05:38:01.543 回答