postgresql could not connect to server

问题:

postgresql部署在linux上,在自己电脑上使用pgadmin连接出现could not connect to server错误

 

问题分析:

出现上述原因有3种情况

1.linux上的防火墙没有关闭

2.postgresql服务没有监听对应的ip与端口

3.没有设置认证规则

解决步骤:

1.查看是否postgresql服务没有监听对应的ip与端口

netstat -anp|grep postmast

下图第一个为127..0.0.1:5432代表postgresql监听127.0.0.1访问地址5432端口的tcp请求,这个是错误的应该127.0.0.0代表本机地址,其他远程将不能被监听到。

第二个为正确设置后的地址0.0.0.0代表任意地址。

2.如果出现上述问题,请设置postgresql.conf

vi /var/lib/pgsql/11/data/postgresql.conf

postgresql文件的路径不同版本会有不同,但是基本在此路径下,如果找不到可以使用以下命令

find / -name postgresql.conf

3.修改postgresql.conf中的listen_addresses地址

修改命令在此不做详细说明,自行查看linux命令,注意一定要去掉“#”注释,网上很多博客不写,会误以为不去掉#配置也能生效

4.添加任意地址的认证

vi /var/lib/pgsql/11/data/pg_hba.conf

在最后一行加入“host all all 0.0.0.0/0 md5”,结果如下:

5.关闭防火墙(或者添加放行端口和协议)

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

6.重启服务

systemctl restart postgresql-11.service

 总结

主要是设置防火墙,设置两个文件

原文地址:https://www.cnblogs.com/SmilingEye/p/11101626.html