数据库无法正常连接的可能性原因及解决方法

1、问题描述

$ psql -h 192.168.6.141 -d highgo -U highgo
psql: could not connect to server: Connection refused
Is the server running on host "192.168.6.141" and accepting
TCP/IP connections on port 5966?

连接数据库报错,无法正常连接数据库。

2、问题原因

  1. 监听地址错误
  2. 客户端认证配置文件错误
  3. 数据库未启动
  4. 网络故障
  5. 连接信息错误
  6. 本地登录时,环境变量设置错误
  7. 客户端认证配置文件设置了网络限制

3、解决方案

(1) 监听地址错误

修改监听参数listen_addresses为‘*’,监听所有地址,并重启数据库生效

alter system set listen_addresses='*';
pg_ctl restart

(2) 客户端认证配置文件错误

在客户端认证配置文件$PGDATA/pg_hba.conf中添加如下一行,允许所有网段地址连接

host    all             all             0.0.0.0/0          md5

(3) 数据库未启动

启动数据库

pg_ctl start

(4) 网络故障

测试客户端与服务器之间的网络连通性。确保网络正常

ping 192.168.6.141

(5) 连接信息错误

连接信息包括以下参数,确保参数正确
-h,数据库服务器地址
-d,数据库名称
-U,用户名称
-p,数据库端口号

(6) 本地登录时,环境变量设置错误

涉及数据库登陆的环境变量包括如下参数,如有这些环境变量设置,需要确保参数正确

$PGDATABASE
$PGUSER
$PGPORT
$PGDATA

(7) 客户端认证配置文件设置了网络限制

查看客户端认证配置文件$PGDATA/pg_hba.conf

1)查看网络访问控制是否配置正确

2)查看是否有reject网络限制