架构:
(腾讯和阿里)云主机发布一款app应用,真实数据源放在公司内网(有FW)。数据库有mysql、ms sql2008和POSTGRESQL数据库.
思路:
在防火墙上配置虚拟ip的tcp映射后,到wan口上应用策略实现(注意不是所有的防火墙支持内网跨网段的映射)。
遇到问题:
mysql和ms sql2008都很顺利。
POSTGRESQL遇到问题了。研发人员说是网络问题。
好吧,只有帮他解决问题,才能证明清白了。
思路:
由于服务器不属于我们管理,也没办法查看,只能通过外围多次验证了。
1、请他们提供链接日志
严重: Servlet.service() for servlet springMVC threw exception
org.postgresql.util.PSQLException: ????????: ???????????? "192.168.1.2", ???? "release", ?????? "FtnGuaHao", SSL ???? ?? pg_hba.conf ????
at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:293)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:108)
at org.postgresql.core.ConnectionFactory.openConnection(Connectio
2、确认是否网络端口开放成功。
在云主机telnet 映射的外网ip 数据库端口 没有问题
3、通过日志大概估计是认证这块。
4、联想。
我只对mysql了解。默认情况下mysql只允许127.0.0.1和localhost链接数据库。
那么POSTGRESQL是否有同样的权限规则呢?
5、通过这个思路找资料
果然找到了
具体修改如下:
① pg_hba.conf 文件,在文件的最下方加上下面的这句话
host all all 0.0.0.0/0 md5
② postgresql.conf文件,查找“listen_addresses ”字符串,然后修改为如下:
listen_addresses = '*'
port=5432
重启postgres服务.
linux重启命令:
#su - postgres
$pg_ctl restart
windows下的就不用说了,菜单方式搞定重启
最后搞定。
阅读(5149) | 评论(0) | 转发(0) |