pgAdmin 与 pgpool 的连接错误

问题描述 投票:0回答:2

我正在使用 pgAdmin III 从客户端管理我的数据库。我有一个主服务器和一个从服务器 postgreSQL 以流复制模式运行。他们前面还有另一个 pgpool 服务器来进行连接池和负载平衡。

当我将 pgAdmin 连接到 pgpool 时,我得到:

Error connecting to the server: ERROR: unable to read message kind
DETAIL: kind does not match between master(52) slot[1] (45)

我之前连接到它没有问题,但不知何故 pgpool 死了,我重新启动它,然后这个错误不知从何而来。

pgpool 和 postgreSQL 服务器运行良好。我可以使用

psql -h hostname database user
访问它们。应用程序服务器也可以连接到它,并且 Web 应用程序照常运行。我只是无法从 pgAdmin 访问它。

postgresql pgadmin pgpool
2个回答
2
投票

http://www.sraoss.jp/pipermail/pgpool-general/2012-March/000297.html

简而言之:在 postgres 集群上超出了

max_connections

我假设发生了什么 - 您重新启动了 pgpool,它打开了与 postgres 的新连接,而旧连接留在

idle
idle in transaction
(取决于超时)。因此,重新启动 pgpool 后,它消耗了双倍的 of
num_init_children
并达到了实际允许的 maximum

杀死旧的(重新启动之前)pgpool 连接应该可以修复它。尝试在 postgres 上运行

pg_terminate_backend(pid)
来做到这一点。还要小心杀死正确的连接。至少检查一下

select pid,query, client_address 
from pg_stat_activity where now()-query_start > '1 day'::interval

或类似的方法只捕捉僵尸


0
投票

清除 pgAdmin 缓存

关闭 pgAdmin。 导航到 pgAdmin 保存其配置和缓存文件的目录。此位置可能会根据您的操作系统而有所不同。 删除或移动与 pgAdmin 相关的缓存文件或文件夹。 重新启动 pgAdmin 并尝试再次连接。

© www.soinside.com 2019 - 2024. All rights reserved.