Connection to database failed: FATAL: no pg_hba.conf entry for host "10.129.195.161", user "appexternal", database "insightdb", SSL off
核心难点,遇到这个问题排查了很长时间没有相关文档:
从两个方便排查:
1 外部ip请求被拒绝。
2 db server 端开了ssl 协议对应的,c 端的没有开启ssl协议。
笔者的排查过程:
1 对外部请求判断是否被拒。可以查看一下配置:

1.修改postgresql.conf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。
定位到#listen_addresses='localhost’。PostgreSQL安装完成后,默认是只接受来在本机localhost的连接请 求。将行开头都#去掉,将行内容修改为listen_addresses='*'来允许数据库服务器监听来自任何主机的连接请求。
2.修改pg_hba.conf文件,配置用户的访问权限(#开头的行是注释内容):
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
    # IPv4 local connections:
    host        all                   all              127.0.0.1/32                md5
    host        testdb             postgres    192.1.1.2/32                md5
host all all 0.0.0.0/0 md5
  以上红色部分为新添加的项。
  以上内容需要注意以下两点:
   1. 数据库名与用户名注意大小写,PostgreSQL是区分大小的;
   2. CIDR-ADDRESS(用户的IP范围)的值的格式是:IP/数值
     数值取值范围为:0,8,16,24,32 即表示掩码bit的个数;
     例如:
      32 -> 192.168.1.1/32 表示必须是来自这个IP地址的访问才合法;
      24 -> 192.168.1.0/24 表示只要来自192.168.1.0 ~ 192.168.1.255的都合法;
      16 -> 192.168.0.0/16 表示只要来自192.168.0.0 ~ 192.168.255.255的都合法;
      8   -> 192.0.0.0/16 表示只要来自192.0.0.0 ~ 192.255.255.255的都合法;
      0   -> 0.0.0.0/0 表示全部IP地址都合法,/左边的IP地址随便了只要是合法的IP地址即可;
完成上面两个配置文件的修改以后,为了让配置生效,需要重新启动PostgreSQL数据库服务器。
可以通过:postgresql-9.5.4/src/test/examples/testlibpq.c 测试连接是否正常。

2 要考虑下是否要支持ssl 协议了,编译libpq.so 的时候要添加 添加ssl 选项。
一开始和客户狂车牌后来发现是 后来发现是编译没有加入ssl 协议。
我的配置是可选参数设置如下:
./configure --prefix=/opt/pgsql9.3.2 --with-pgport=5432 --with-perl --with-python --with-tcl --with-openssl --with-pam  --without-ldap --with-libxml  --with-libxslt  --enable-thread-safety  --with-wal-blocksize=16 --with-blocksize=16 --enable-dtrace --enable-debug
配置选项说明:
--prefix=/opt/pgsql9.3.2:安装所有文件在/opt/pgsql9.3.2中(取代默认时的/usr/local/pgsql)。
--with-pgport=5432:为服务器和客户端设置默认端口号。默认是5432。
--with-perl:编译PL/Perl服务端语言。
--with-python:编译PL/Python服务端语言。
--with-tcl:编译PL/Tcl服务端语言。
--with-openssl:编译支持SLL(加密)连接。这需要安装OpenSSL包。
--with-pam:编译支持PAM(Pluggable Authentication Modules,可插拔认证模块)
--without-ldap:编译支持认证和连接参数检查
--with-libxml:编译libxml(支持SQL/XML),支持这个选项需要Libxml 2.6.23及最新版
--with-libxslt:编译xml2模块,使用libxslt
--enable-thread-safety:让客户端库是线程安全的
--with-wal-blocksize=16:WAL:预写式日志(Write-Ahead Logging)
设置WAL的block size,以MB为单位。这是在WAL日志中的每个独立文件的大小。为了控制WAL日志传送的粒度去调整其大小,这可能是非常有用的。默认为16MB。这个值必须是2的1到64次方(MB)。注意,改变这个值需要一个initdb。
--with-blocksize=16:设置block size,以KB为单位。这是表的存储和IO单元。默认为8K,适用于大多数情况;但是在特殊场合中,其他的值可能是非常有用的。这个值必须是2的1到32次方(KB)。注意,改变这个值需要一个initdb。
--enable-dtrace:编译PostgreSQL支持动态跟踪工具DTrace
--enable-debug:把所有程序和库以带有调试符号的方式编译
--enable-nls[=LANGUAGES]:打开本地语言支持(NLS),即以非英文显示程序的信息的能力。LANGUAGES是一个空格分隔的语言代码列表,标识你想支持的语言。比如--enable-nls='de fr'。(你提供的列表和实际支持的列表之间的交集将会自动计算出来。)如果你没有声明一个列表,那么就安装所有可用的翻译。
(还可以在--enable-debug前,添加两个选项:--enable-depend --enable-cassert)
配置过程可能会遇到依赖的动态库缺失,  安装这些缺失的库即可。
记录下我这里的缺失lib的安装:
dtrace工具的安装:
PostgreSQL支持动态跟踪, 可以通过dtrace或者systemtap工具统计相关探针的信息
生成的libpq.so 在postgresql-9.5.4/src/interfaces/libpq/ 下面。

postgresql Connection to database failed: FATAL: no pg_hba.conf entry for host 10.129.195.161, us相关推荐

  1. postgresql报错 :FATAL: no pg_hba.conf entry for host 192.168.163.130,user postgres,database pos

    报错原因 :没有在/postgres/data/pg_hba.conf配置文件中192.168.163.130授权 PostgreSQL安装及初始化完成以后,在它的配置文件里,默认只允许本机连接,而且 ...

  2. 连接docker中postgresql数据库出现Connection matched pg_hba.conf line 99: “host all all all md5“

    最近跑在docker里的go服务总是莫名其妙的突然连不上postgres数据库,postgres数据库也是跑在docker里,看了下日志 Connection matched pg_hba.conf ...

  3. 数据库工作笔记008---pg_hba.conf entry for host “192.168.2.111”, user “gpadmin”, database “template1”, SSL

    JAVA技术交流QQ群:170933152 PostgreSQL远程连接方法 有时候在远程连接时,会报Error connecting to the server:致命错误:没有用于主机"- ...

  4. pg_hba.conf 和 pg_ident.conf

    初始化后pg_hba.conf默认的内容: # TYPE  DATABASE        USER            ADDRESS                 METHOD # " ...

  5. PostgreSQL远程数据库连接 PostgreSQL pg_hba.conf 文件简析

    原文连接1:http://blog.csdn.net/zhouxuguang236/article/details/8217487 原文连接2:http://www.cnblogs.com/hilov ...

  6. repmgr ERROR: connection to database failedDETAIL: fe_sendauth: no password supplied

    ERROR: connection to database failed DETAIL: fe_sendauth: no password supplied repmgr报错切换失败 ERROR: c ...

  7. Connection to @localhost failed. [08001] Could not create connection to database server. Attempt

    Connection to @localhost failed. [08001] Could not create connection to database server. Attempt 当我们 ...

  8. Unable to connect to PostgreSQL server: FATAL: missing or erroneous pg_hba.conf file\nHINT: See se

    经过一番的yum, 编译, 配置. 终于搭建了在CentOS上的apache + php + postgreSQL环境... 但是在php连接的时候总是报 Unable to connect to P ...

  9. 从pg_hba.conf文件谈谈postgresql的连接认证

    最近一直在弄postgresql的东西,搭建postgresql数据库集群环境什么的.操作数据库少不得要从远程主机访问数据库环境,例如数据库管理员的远程管理数据库,远程的客户存取数据库文件. 而在po ...

  10. could not create connection to database server.] with root cause

    场景 SpringBoot项目运行后提示: 详细提示如下: ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: ...

最新文章

  1. 学习旧岛小程序 (3)组件的样式
  2. bash问题引起的centos系统不能启动
  3. 寻址(实模式和保护模式)
  4. 美团点评企业研究报告
  5. 关于ECMAScript6 的学习01-ES6 的六种变量声明方式===关于常量const
  6. 更改npm淘宝源,并设置cnpm
  7. C++中用TinyXML对XML文件进行解析
  8. r语言调用python_R语言与Python协同工作
  9. 大数据开发工程师岗位职责
  10. iOS音乐播放器(歌词自动滚动)
  11. GoLang语言:邮件群发器
  12. 我的系統中存在的问题
  13. C语言根据国家英文首字母进行排序
  14. 怎么查快递到哪里了?快递单号查询全部物流
  15. IOS5短信拦截怎么实现?
  16. 卑鄙与高尚,理想与现实
  17. hibernate一对一主键唯一外键关联(二)
  18. optimization method (理论)
  19. 原来在Java世界里也有这么多精彩的故事,学Java真有趣!
  20. java学习之小项目彩票购买系统

热门文章

  1. 如何逃出【 AI 换脸的世界】
  2. 七大常见排序,你究竟懂几个?(下)
  3. html缩放动画效果,CSS3鼠标hover背景图片缩放动画效果
  4. 产品经理修炼之道读后感
  5. windows不能更改密码
  6. 卓越风险管理 护航普惠金融
  7. 2013年大学英语专升本作文——Should One Expect a Reward When Doing a Good Deed?【标准答案、精品范文答案】
  8. 并发编程之:线程池(二)
  9. STEP2——《数据分析:企业的贤内助》重点摘要笔记(二)——数据获取资源...
  10. ctfshow 日志包含Web80-81