测试环境:

  • 物理机一台,安装了 Postgresql 9.6 的服务,并已启动
  • 虚拟机一台(在上面的物理机上,使用 VMware 搭建)
  • 物理机与虚拟机可以互相 ping 通

通过下面的配置,来允许远程的机器连接到我的 Postgresql 服务

  • postgresql.conf
    将该文件中的listen_addresses项值设定为“”,在9.0 Windows版中,该项配置已经是“”无需修改。
  • pg_hba.conf
    在该配置文件的host all all 127.0.0.1/32 md5行下添加以下配置,或者直接将这一行修改为以下配置
    host all all 0.0.0.0/0 md5
    如果不希望允许所有IP远程访问,则可以将上述配置项中的0.0.0.0设定为特定的IP值

PS:上面这两份文件,默认都在你的 postgresqldata 目录下。一般是 ${POSTGRESQL}/data 下面。

通过上面这么配置之后,其他人可以连接我的 postgresql 服务了,但是虚拟机却不可以,下面是虚拟机里用的 jdbc url :

jdbc:postgresql://192.168.142.1:5432/test

之所以这么写,是因为我的虚拟机的IP地址是192.168.142.8,然后,我采用的是 NAT 模式来连接 物理机与虚拟机的,so,对于 虚拟机而言,物理机的IP地址就是 192.168.142.1

可事实是,这么配置是 NG 的。

后来我尝试试了一下,使用物理机的真实IP地址试了一下,即改成下面这样的:

jdbc:postgresql://172.16.120.146:5432/test

果然是可以的。

参考文档

Postgresql允许远程访问配置修改

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐