08004: sqlserver_rejected_establishment_of_sqlconnection
PostgreSQL含义
已连到服务器,但服务器拒绝建立连接。网络可达,但服务器根据策略不接受此连接。
原因
PostgreSQL 服务器很少产生此代码;它大多由客户端驱动或连接池报告。服务器针对类似拒绝的实际代码不同:pg_hba.conf 拒绝('no pg_hba.conf entry for host'、reject 方法)返回 28000(invalid_authorization_specification),max_connections 耗尽返回 53300(too_many_connections),启动/关闭期间拒绝连接返回 57P03。
解决方法
在服务器日志中查看拒绝的真实 SQLSTATE 和原因。对于 pg_hba 拒绝(28000),为客户端 IP、用户和数据库添加匹配的行(例如 host all all 10.0.0.0/24 scram-sha-256),并用 SELECT pg_reload_conf(); 重新加载。对于连接饱和(53300),用 SELECT count(*) FROM pg_stat_activity WHERE backend_type = 'client backend'; 将客户端连接数与 max_connections 进行比较。