欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

psql 无法连接数据库,报错FATAL:53300

程序员文章站 2024-03-21 12:40:58
...


psql: FATAL:  53300: remaining connection slots are reserved for non-replication superuser connections
普通用户的连接已满,保留用于非复制的超级用户连接。
当数据库剩余连接数<=为超级用户保留的连接数时,使用非超级用户连接数据库报错如上,此时只能使用超级用户连接数据库。
 
如何查看数据库剩余连接数:
select max_conn-now_conn as resi_conn from (select setting::int8 as max_conn,(select count(*) from pg_stat_activity) as now_conn from pg_settings where name = 'max_connections') t;
 
如何查看为超级用户保留的连接数: 
show superuser_reserved_connections;
 
psql: FATAL:  53300: sorry, too many clients already
数据库连接已满,无法建立新的连接。
 
 
1、关闭空闲连接。
select datname,pid,application_name,state from pg_stat_activity; 
--查看目前所有的连接的进程id、应用名称、状态。
 
select pg_terminate_backend(pid) from pg_stat_activity; 
--通过pid终止空闲连接
 
2、调整数据库最大连接数,并重启生效。
 

 

 

–当前总共正在使用的连接数

postgres=# select count(1) from pg_stat_activity;

 

–显示系统允许的最大连接数

postgres=# show max_connections;

 

–显示系统保留的用户数

postgres=# show superuser_reserved_connections ;

 

–按照用户分组查看

select usename, count(*) from pg_stat_activity group by usename order by count(*) desc;