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相关推荐
- 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安装及初始化完成以后,在它的配置文件里,默认只允许本机连接,而且 ...
- 连接docker中postgresql数据库出现Connection matched pg_hba.conf line 99: “host all all all md5“
最近跑在docker里的go服务总是莫名其妙的突然连不上postgres数据库,postgres数据库也是跑在docker里,看了下日志 Connection matched pg_hba.conf ...
- 数据库工作笔记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:致命错误:没有用于主机"- ...
- pg_hba.conf 和 pg_ident.conf
初始化后pg_hba.conf默认的内容: # TYPE DATABASE USER ADDRESS METHOD # " ...
- PostgreSQL远程数据库连接 PostgreSQL pg_hba.conf 文件简析
原文连接1:http://blog.csdn.net/zhouxuguang236/article/details/8217487 原文连接2:http://www.cnblogs.com/hilov ...
- 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 ...
- 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 当我们 ...
- 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 ...
- 从pg_hba.conf文件谈谈postgresql的连接认证
最近一直在弄postgresql的东西,搭建postgresql数据库集群环境什么的.操作数据库少不得要从远程主机访问数据库环境,例如数据库管理员的远程管理数据库,远程的客户存取数据库文件. 而在po ...
- could not create connection to database server.] with root cause
场景 SpringBoot项目运行后提示: 详细提示如下: ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: ...
最新文章
- 学习旧岛小程序 (3)组件的样式
- bash问题引起的centos系统不能启动
- 寻址(实模式和保护模式)
- 美团点评企业研究报告
- 关于ECMAScript6 的学习01-ES6 的六种变量声明方式===关于常量const
- 更改npm淘宝源,并设置cnpm
- C++中用TinyXML对XML文件进行解析
- r语言调用python_R语言与Python协同工作
- 大数据开发工程师岗位职责
- iOS音乐播放器(歌词自动滚动)
- GoLang语言:邮件群发器
- 我的系統中存在的问题
- C语言根据国家英文首字母进行排序
- 怎么查快递到哪里了?快递单号查询全部物流
- IOS5短信拦截怎么实现?
- 卑鄙与高尚,理想与现实
- hibernate一对一主键唯一外键关联(二)
- optimization method (理论)
- 原来在Java世界里也有这么多精彩的故事,学Java真有趣!
- java学习之小项目彩票购买系统
热门文章
- 如何逃出【 AI 换脸的世界】
- 七大常见排序,你究竟懂几个?(下)
- html缩放动画效果,CSS3鼠标hover背景图片缩放动画效果
- 产品经理修炼之道读后感
- windows不能更改密码
- 卓越风险管理 护航普惠金融
- 2013年大学英语专升本作文——Should One Expect a Reward When Doing a Good Deed?【标准答案、精品范文答案】
- 并发编程之:线程池(二)
- STEP2——《数据分析:企业的贤内助》重点摘要笔记(二)——数据获取资源...
- ctfshow 日志包含Web80-81