PostgreSQL实战(1)允许远程连接

1、允许远程访问数据库

 在默认情况下, Pos tgreSQL 实例是不允许通过远程访问数据库的,如下所示:

[postgres@pghostl ~]♀ netstat -nlt I grep 1921 
Active Internet connections (onl y servers) 
Proto Recv Q Send Q Local Address Foreign Address 
tcp 0 0 127 . 0 . 0.1:1921 0 . 0 . 0 . 0 : * 
tcp 0 0 : :1:1921 …* 

从其他 机访问数据库端口,将会被拒绝,如下所示
 

[postgres@pghost2 ~]$ telnet pghostl 1921 
Trying pghostl ... 
telnet : connect to address pghostl: Connection refused 

想要外网访问需要修改两个配置文件,一个配置文件是postgresql.conf

PostgreSQL 管理监昕地址的配置项为 postgresql.conf 文件中的 listen_addresses 默认安装只监昕本地环回地址 localhost 连接不允许使用 TCP/IP 建立远程连接,启用远程连接需要修改 postgresql.conf 中的 listen_addresses 参数。用文本编辑器打开 postgresql.conf配置文件,命令如下所示:

[postgres@pghostl ~] $ vim / pgdata/10 / data / postgresql . conf 
找到名称为 listen addresses 的配置项,如下所示:
#listen addresses ocalhost what IP address (es) to l 工 sten on; 
# comma -separated list of addresses; 
# defaults to ’ localhost ’ J use for all 
# (change requires restart) 

关于 listen addresses 参数的 行注释,的含义如下:
 what IP address(es) to listen on一一监昕什么 IP 地址?也就是允许用哪些 IP 地址访
问,可以是一个IP,也可以是多个 IP 地址


comma-separated list of addresses ;一一以逗号分隔地址列表


 defaults to ’localhost'; use for all-一默认是“ localhost ”,使用“*”允许所有地址;大多数的高可用架构都使用 VIP 的方式访问数据库,所以我 一般设置为“*”


(change requires restart)一一修改这个参数需要重新启动数据库


去掉 listen addresses 这一行开头的“ 号, 把它的值修改为“*”,即允许所有地
址访问数据库,如下所示:

listen addresses =’*’ 

第二个文件是pg_hba.conf 文件

修改监听地址之后,还需要修改 pg_hba conf 文件,回答 pg_h ba .conf 的问题:允许哪些主机可以通过 么连接方式和认证方式通过哪个数据库用户连接哪个数据库?假设我允许所有主机通过 TCP/IP 建立的连接,同时匹配 SSL 和非 SSL 连接,通过 d5 口令认证,使用 pguser 用户 ,连接 mydb 数据库,那么我们只需要在 pg hba.conf 文件中增加一行,如下所示:

host rnydb pguser 0.0.0.0/0 md5

也可以把所有的开放,如下:

host all all  0.0.0.0/0 md5 

修改完两个文件之后,在重启一下服务就可以了:

[root@pghostl ~]$ service postgresql- 10 restart 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值