postgres 切换数据库提示remaining connection slots are reserved for non-replication superuser connections
场景
使用下面命令在pg终端内,切换数据库时提示
\c db_name pg_user; # pg_user是非超级用户
报错
psql: FATAL: 53300: remaining connection slots are reserved for non-replication superuser connections
意思是:普通用户的连接已满,仅保留用于非复制的超级用户连接。
解决办法
连接过多导致,解决办法如下:
select datname,pid,application_name,state from pg_stat_activity; # 查看目前所有的连接的进程id、应用名称、状态。
select pg_terminate_backend(pid) from pg_stat_activity; # 通过pid终止空闲连接
其他
查看当前连接数,可以使用下面语句
SELECT count(*) FROM pg_stat_activity; # 查看当前连接数
SHOW max_connections; # 可以查看设置的最大连接数