问题:
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
总结
主要是设置防火墙,设置两个文件