Geoserver修行记_Geoserver如何连接瀚高数据库_国密SM3
项目场景:
(可以跳过)首先小编要吐槽一线运维工作的不易。我直接被坑惨了,服务器断电,导致硬盘损坏,幸好数据恢复了,结果发布的数据服务还不能使用了,现在要重新恢复数据,太痛苦了。结果遇到了瀚高数据库升级,采用国密SM3加密算法连接数据库,结果又踩坑了,现在把运维记录一下,希望可以帮到大家。
搭建环境说明
- 地图服务:Geoserver 2.23.1
- 数据库:Hgdb-see-4.5.8
问题描述
geoserver之前可以正常连接瀚高数据库的,瀚高数据库升级后就不能连接了,感谢瀚高数据库的赵老师在技术帮助,问题得以解决!
错误内容如下所示:
编辑的矢量数据源
尝试连接到存储仓库sde2出错。你要保存它吗?
原始的异常错误:
Unable to obtain connection: Cannot create PoolableConnectionFactory (不支援 13 验证类型。请核对您已经组态 pg_hba.conf 文件包含客户端的IP位址或网路区段,以及驱动程序所支援的验证架构模式已被支援。
如下图所示

原因分析:
之前使用的是MD5加密算法连接数据库,瀚高数据库升级后采用国密SM3算法连接数据库,导致Geoserver无法使用加密算法连接,需要调用瀚高数据库的org.postgresql.Driver驱动才可以。因此需要安装对应的驱动包。
解决方法
多提一嘴,提前安装好postgis插件。
在Geoserver中是通过postgresql-x.x.x.jar连接瀚高数据库的,需要替换这个jar包。
下载我上传的驱动文件,在/webapps/geoserver/WEB-INF/lib中的postgresql-42.4.3.jar文件备份,将hgdb-pgjdbc-42.5.0.jar名称修改为postgresql-42.4.3.jar,放在该文件夹下。
关于瀚高数据库驱动描述如下:
以下是支持国密的提供的驱动配置:
- 1、这三个包是搭配使用的,走的是hgdb的驱动com.highgo.jdbc.Driver:
HgdbJdbc-6.2.4.jar
postgis-jdbc-hgdb.jar
postgis-geometry-hgdb.jar- 2、这三个包是搭配使用的,走的是pg的驱动org.postgresql.Driver:
hgdb-pgjdbc-42.5.0.jar
postgis-jdbc-hgdb.jar
postgis-geometry-hgdb.jar
小结
专业的问题还是得找专业的人员解决,再次感谢瀚高数据库的技术老师的帮助!
