postgresql - 尝试连接到任何 Postgres 13 实例时出现“错误:数据库 'postgres' 的连接太多”
问题描述
我和我的团队目前遇到了一个问题,即我们无法从psql
cli 工具以外的任何东西连接到 Cloud SQL 的 Postgres 实例。我们收到一个too many connections for database "postgres"
错误(在 PGAdmin、DBeaver 和我们的节点 typeorm/pg 后端)。它最初发生在我们的(唯一的)Postgres 数据库实例上。重新启动、停止并再次启动后,增加机器 CPU/内存证明无济于事,我完全删除了数据库实例并从头开始创建一个新实例。
然而,几个小时后,问题又来了。我知道我们实际上并没有太多的连接,因为我可以从命令行查询pg_stat_activity
并psql
看到以下内容:
只有其中一个(postgres 用户名)连接是我们的。
我的同事也根本无法连接- 甚至从psql
cli 也无法连接。
如果重要的话,我们使用的是 PostgreSQL 13、europe-west2(伦敦)、单区可用性、具有 1.7GB 内存、10GB 硬盘的 db-g1-small 实例,并且我们启用了公共 IP 并将正确的 IP 地址列入白名单。
如果有人对造成这种情况的原因有任何见解,我将不胜感激。
编辑:我进一步增加了实例大小(不再是共享核心),并且我设法成功地将我的后端连接到它。但是我的psql
cli 不再工作 - 似乎只有第一个连接的客户端在重新启动后被允许连接(即使它断开连接,其他客户端也无法连接......)。
解决方案
@jjanes 有正确的想法/提及。
我在未命名的 Cloud SQL 实例中创建了另一个数据库postgres
,然后一切正常。
这与最大连接设置(因为这是在 Google Cloud SQL 中)或不关闭连接(因为 TypeORM/pg 已经这样做了)没有任何关系。
推荐阅读
- python - 为什么```print```不能在for循环中工作并且变量在Python中没有改变?
- c# - NetworkStream 在服务器关闭时读取
- django - Facebook 登录/图形 API - 在 localhost 和 http(不是 https)上入门
- c++ - C ++迭代列表以比较位置
- algorithm - 回文对
- ios - react-native firebase facebook无效的access_token,iPhone中的错误代码43
- angular - 在 Angular 5 项目中创建 Web 配置文件?
- linux - Linux 64 位 BAR 编程
- python - Python:如果字符串连续没有7个相同字符的子串,则返回True
- r - R函数:为什么不能在return中评估表达式?