背景
apollo版本:1.9.2
mysql版本: 5.7.32
jdk版本:openjdk version "1.8.0_322"
apollo的启动报错如下:
2022-04-16 14:14:28.583 WARN 15154 --- [main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadata
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
jdbc连接信息如下
apollo_config_db_url="jdbc:mysql://127.0.0.1:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai"
apollo_config_db_username=root
apollo_config_db_password=123456
# apollo portal db info
apollo_portal_db_url="jdbc:mysql://127.0.0.1:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai"
apollo_portal_db_username=root
apollo_portal_db_password=123456
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server
数据包已经成功发送,但是没有收到任何回包
仅仅从字面报错分析,初始反应就是如下:
1、是不是网络问题,数据包发送了没有收到确认包
2、是不是数据库驱动mysql-connector-java的问题
配置是127.0.0.1地址出现网络问题可能性不大,问题1排除
这个是从github上拉的程序包,jar包中的mysql-connector-java出问题可能性不大
以上两点被否定,继续往下分析日志
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
有了上序报错后查资料 https://blog.csdn.net/AmOneBird/article/details/123818956,有两种解决方案
1、可能是java版本过高和mysql-connector-java不兼容导致的
2、数据库连接的url后加上参数useSSL=false
验证方法一:
将当前jdk版本从1.8.0_322降低到1.8.0_221问题解决
验证方法二:
apollo_portal_db_url="jdbc:mysql://127.0.0.1:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false"
后面增加&useSSL=false同样问题解决
碰到问题要多分析、总结,不能只看表面,例如日志前面的日志
喜欢的朋友可以点赞、关注、留言。不定时分享一些问题排查思路
本文暂时没有评论,来添加一个吧(●'◡'●)