首页 > 解决方案 > 尝试连接到任何 Postgres 13 实例时出现“错误:数据库 'postgres' 的连接太多”

问题描述

我和我的团队目前遇到了一个问题,即我们无法从psqlcli 工具以外的任何东西连接到 Cloud SQL 的 Postgres 实例。我们收到一个too many connections for database "postgres"错误(在 PGAdmin、DBeaver 和我们的节点 typeorm/pg 后端)。它最初发生在我们的(唯一的)Postgres 数据库实例上。重新启动、停止并再次启动后,增加机器 CPU/内存证明无济于事,我完全删除了数据库实例并从头开始创建一个新实例。

然而,几个小时后,问题又来了。我知道我们实际上并没有太多的连接,因为我可以从命令行查询pg_stat_activitypsql看到以下内容:

pg_stat_activity 查询

只有其中一个(postgres 用户名)连接是我们的。

我的同事也根本无法连接- 甚至从psqlcli 也无法连接。

如果重要的话,我们使用的是 PostgreSQL 13、europe-west2(伦敦)、单区可用性、具有 1.7GB 内存、10GB 硬盘的 db-g1-small 实例,并且我们启用了公共 IP 并将正确的 IP 地址列入白名单。

如果有人对造成这种情况的原因有任何见解,我将不胜感激。

编辑:我进一步增加了实例大小(不再是共享核心),并且我设法成功地将我的后端连接到它。但是我的psqlcli 不再工作 - 似乎只有第一个连接的客户端在重新启动后被允许连接(即使它断开连接,其他客户端也无法连接......)。

标签: postgresqlgoogle-cloud-sql

解决方案


@jjanes 有正确的想法/提及。

我在未命名的 Cloud SQL 实例中创建了另一个数据库postgres,然后一切正常。

这与最大连接设置(因为这是在 Google Cloud SQL 中)或不关闭连接(因为 TypeORM/pg 已经这样做了)没有任何关系。


推荐阅读