加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql连接故障汇总

发布时间:2020-12-13 17:16:32 所属栏目:百科 来源:网络整理
导读:这是一个连接数超过数据库限制连接数的的问题。查看了下数据里面的连接数: postgres=# select count(1) from pg_stat_activity; count ------- 95(1 row)postgres=# show max_connections; max_connections ----------------- 100(1 row)postgres=# show sup
这是一个连接数超过数据库限制连接数的的问题。查看了下数据里面的连接数:
postgres=# select count(1) from pg_stat_activity;
 count 
-------
    95
(1 row)

postgres=# show max_connections;
 max_connections 
-----------------
 100
(1 row)

postgres=# show superuser_reserved_connections ;
 superuser_reserved_connections 
--------------------------------
 3
(1 row)
可以看到当前连接已经有95个了,外加3个超级用户预留连接数,即将达到100这个限制数,所以程序极易报错。 解决办法:增大postgresql.conf中的参数max_connections值,开发程序上检查连接数是否正常关闭等,应急情况下,可把pg_stat_activity中IDLE的进程删除,kill procpid; 由此想到以前遇到的一些连接问题,一并写在这里了,方便以后查看。
错误2:
psql: could not connect to server: Connection refused (0x0000274D/10061)
        Is the server running on host "???" and accepting
        TCP/IP connections on port 5432?
这个问题一般是以下原因造成的:
1.服务器没起来,ps -ef|grep postgres查看是否存在PG进程
2.监听问题,cat postgresql.conf|grep listen 查看监听地址是否正确
3.服务端超级用户能进去,其他用户不行,检查是否超出最大连接数限制
4.以上都没问题,服务器端能连进去,但客户端不行,这时需要查看pg_hba.conf文件
5.以上都没问题,检查服务器端的iptables,开启防火墙的访问端口

错误3: 是在QQ群里一个用户贴的:
Fatal:connection limit exceeded for non-supersers 
其实该问题和错误1是类似的,连接数接近数据库设置的连接数.需要增大连接数 说明:
max_connections是数据库允许的最大连接数,默认值100,
superuser_reserved_connections是预留给超级用户的连接数,默认值3
修改这两个参数都需要重启DB;

与之相关联的参数还有work_mem,连接数*work_mem可以得到DB的内存大小,这个调整视服务器的内存大小和使用情况而定

来自:http://my.oschina.net/Kenyon/blog/57816

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读