nacos2使用外部搭建的mysql8服务作为存储媒介,刚搭建完mysql8发现nacos连接mysql8没有任何问题,但是后面突然报了类似下面的异常信息

Caused by: java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
    at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:906)
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:831)
    at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456)
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197)
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:354)
    at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202)
    at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473)
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
    at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
    at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
    ... 172 more
Caused by: com.mysql.cj.exceptions.CJException: Public Key Retrieval is not allowed
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:124)
    at com.mysql.cj.protocol.a.authentication.CachingSha2PasswordPlugin.nextAuthenticationStep(CachingSha2PasswordPlugin.java:151)
    at com.mysql.cj.protocol.a.authentication.CachingSha2PasswordPlugin.nextAuthenticationStep(CachingSha2PasswordPlugin.java:49)
    at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:438)
    at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:171)
    at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1342)
    at com.mysql.cj.NativeSession.connect(NativeSession.java:157)
    at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:850)
    ... 186 more
Caused by: com.mysql.cj.exceptions.UnableToConnectException: Public Key Retrieval is not allowed
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85)
    at com.mysql.cj.protocol.a.authentication.CachingSha2PasswordPlugin.nextAuthenticationStep(CachingSha2PasswordPlugin.java:128)

前几次还报了下面的错误日志:

Caused by: java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
    at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:906)
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:831)
    at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456)
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197)
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:354)
    at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202)
    at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473)
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
    at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
    at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
    ... 172 more
Caused by: com.mysql.cj.exceptions.CJException: null,  message from server: "Host '172.18.0.4' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:129)
    at com.mysql.cj.protocol.a.NativeProtocol.rejectProtocol(NativeProtocol.java:365)
    at com.mysql.cj.protocol.a.NativeProtocol.readServerCapabilities(NativeProtocol.java:494)
    at com.mysql.cj.protocol.a.NativeProtocol.beforeHandshake(NativeProtocol.java:377)
    at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1340)
    at com.mysql.cj.NativeSession.connect(NativeSession.java:157)
    at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:850)
    ... 186 more

最下面爆出的日志都是

Caused by: com.alibaba.nacos.api.exception.NacosException: Nacos Server did not start because dumpservice bean construction failure :
No DataSource set
    at com.alibaba.nacos.config.server.service.dump.DumpService.dumpOperate(DumpService.java:204)
    at com.alibaba.nacos.config.server.service.dump.ExternalDumpService.init(ExternalDumpService.java:52)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:363)
    at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:307)
    at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136)
    ... 53 common frames omitted
Caused by: java.lang.IllegalStateException: No DataSource set

所以如果不向上翻日志的话可能找不到解决问题的方法,最初几次nacos启动失败爆出的错误信息也不能明确问题所在,只能告诉我们nacos连接MySQL错误次数过多,最后一次启动失败日志则给出了明确的解决方向,具体方法为在数据库连接url上增加allowPublicKeyRetrieval=true配置

如果使用nacos-server docker部署的话可以增加下面的配置

MYSQL_SERVICE_DB_PARAM: characterEncoding=utf8&connectTimeout=2000&allowPublicKeyRetrieval=true&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC

该参数具体解析参照mysql官网说明:https://mysqlconnector.net/connection-options/

nacos使用mysql8作为存储媒介时报Caused by: com.mysql.cj.exceptions.CJException: Public Key Retrieval is not all相关推荐

  1. Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value

    Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value ' ...

  2. 连接mysql报错Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zon

    连接mysql报错: Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time z ...

  3. hive启动失败 显示:Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time

    标题[报错]Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone v ...

  4. 解决:Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone valu

    解决:Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone valu ...

  5. 解决连接mysql数据库出现Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server tim

    这里写自定义目录标题 解决连接mysql数据库出现Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The ...

  6. Caused by: com.mysql.cj.exceptions.WrongArgumentException的一种解决方法

    项目场景: 从properties文件读取信息连接数据库失败,Caused by: com.mysql.cj.exceptions.UnableToConnectException: Cannot l ...

  7. Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value '

    如果我的博客能够帮到大家能够点个赞,关注一下,以后还会更新更过JavaWeb的高级技术,大家的支持就是我继续更新的动力.谢谢. 今天在使用SpringBoot 链接数据库,测试得时候出现了以下错误: ...

  8. Spring连接Mysql报Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link fai错

    系列文章分类 学习目标: 1.一周掌握 JAVA入门知识 2.掌握基础入门C#知识 3.手把手教你vbs脚本制作 4.强大的 IDEA编程利器 Spring连接Mysql报错 学习目标: 前言 一.S ...

  9. 【已解决】caused by: com.mysql.cj.exceptions.cjcommunicationsexception: communications link failure

    这个错误和之前博文中的错误原因一样,解决方法也一致. 解决方法请参考https://blog.csdn.net/handoking/article/details/81387721

最新文章

  1. 【Flutter】Flutter 布局组件 ( PhysicalModel 组件 )
  2. 【11_83】Remove Duplicates from Sorted List
  3. 好代码是管出来的——使用GitHub
  4. PLSQL触发器随笔
  5. 解决 Python fake_useragent 报错 fake-useragent Maximum amount of retries reached问题
  6. 在ubuntu - linux系统下装TensorFlow(虚拟机)
  7. 深入了解absolute
  8. Way back into love
  9. H3CSE园区-VLAN配置
  10. 圣诞节flash卡通短片
  11. 向前迈进!走入GC世界:G1 GC原理深入解析
  12. [Slides notes] Other notes using Excel
  13. NodeJS 基础 API
  14. JVM调优之参数配置: -Xms -Xmx -Xmn -XX:+PrintGCDetails -XX:UseSerialGC -XX:SurvivorRadio -XX:NewRadio
  15. php怎么实现根据图片搜索图片功能
  16. 【音乐入门】写给理工科人看的乐理(三)五线谱进阶与和声理论
  17. miui修改Android,无法修改小米MIUI设备中的系统设置
  18. HBase数据库使用TTL清理过期数据
  19. 【九层之台】Web开发教程:1. 基础
  20. 机器学习中为什么需要梯度下降_机器学习101:一文带你读懂梯度下降

热门文章

  1. 服务器2003光盘修复,将Windows安装到光盘上 修复系统故障简单轻松
  2. airpods pro是按压还是触摸_Airpods Pro深度测评,给犹豫不决的你一些参考。
  3. widerperson数据集转voc
  4. Springboot使用@EnableCache缓存
  5. java打印api_java 调用打印机API无法打印的问题,请问找到解决方案了吗?
  6. python line strip_关于python 的line.strip()方法
  7. 三星java安装_三星F488E的JAVA安装方法
  8. 我是谁,读《薇娅:人生是用来改变的》有感
  9. 微星主板在有RAID的情况下在NVME的SSD上安装Win10
  10. 忘记了Windows系统的账号对应的密码的解决方案