0. 引言
最近部署ik分词器数据库热更新报错,特此记录,以供后续参考
java.sql.SQLNonTransientConnectionException: Could not create connection to database server.
环境
mysql8.0
es7.13.0
mysql驱动器8.0.22
1. 解决
1、检查是否将mysql-connector-java-8.0.22.jar错误的放在plugins目录下了,应该放在plugins/ik路径下
2、检查ik源码pom中的驱动器版本和ik目录中的驱动器版本是否一致
3、在jdk/lib/security/default.policy中添加权限 jdk14在/var/local/jdk-14.0.2/lib/security/default.policy中的grant{}里添加 jdk8是在/var/local/jdk1.8.0_271/jre/lib/security/java.policy中的grant{}里添加
我这里使用的是es自带的jdk
vim jdk/lib/security/default.policy
添加内容,目的是给该ip和端口开通socket网络链接权限
// 192.168.244.1:3306是拓展词数据库ip和端口
permission java.net.SocketPermission "192.168.244.1:3306","connect,resolve";
如果安全权限不需要限制的那么严格的话,可以直接开放所有端口
策略文件中设置为能接受、连接、解析任何IP及端口
permission java.net.SocketPermission “*:*”,”accept,connect,resolve”;
2. 推荐阅读
1、Elastic:IK分词器分词、停用词热更新如何配置(二)基于数据库
|