首页 > 其他分享 >Springboot - [12] Question & Answer

Springboot - [12] Question & Answer

时间:2024-07-10 09:44:16浏览次数:11  
标签:8.0 jdbc java 31 Question 12 mysql Answer com

题记部分

 

一、Public Key Retrieval is not allowed

百度翻译:不允许进行公钥检索

(1)报错信息

java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) ~[mysql-connector-j-8.0.31.jar:8.0.31]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.0.31.jar:8.0.31]
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~[mysql-connector-j-8.0.31.jar:8.0.31]
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:448) ~[mysql-connector-j-8.0.31.jar:8.0.31]
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[mysql-connector-j-8.0.31.jar:8.0.31]
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-j-8.0.31.jar:8.0.31]
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar:na]
    
......

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
### The error may exist in com/manulife/mapper/SyncTblConfigMapper.java (best guess)
### The error may involve com.manulife.mapper.SyncTblConfigMapper.selectList
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed

	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)
	at com.sun.proxy.$Proxy67.selectList(Unknown Source)

(2)原因解析

MySQL服务器配置不允许从远程客户端检索公钥。

(3)解决方法

① 禁用SSL连接:如果不需要SSL连接,可以在application.properties或application.yml文件中添加以下配置

spring.datasource.tomcat.jdbc-url=jdbc:mysql://localhost:3306/yourdb?useSSL=false&serverTimezone=UTC

或者在YAML文件中:

spring:
  datasource:
    tomcat:
      jdbc-url: jdbc:mysql://localhost:3306/yourdb?useSSL=false&serverTimezone=UTC

② 配置SSL证书:如果需要使用SSL连接,确保你已经配置了正确的SSL证书,并且在数据库连接字符串中指定了相关参数

spring.datasource.tomcat.jdbc-url=jdbc:mysql://localhost:3306/yourdb?useSSL=true&requireSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.tomcat.username=root
spring.datasource.tomcat.password=password
spring.datasource.tomcat.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.tomcat.validation-query=SELECT 1

同时,你需要在系统中安装相应的SSL证书,并将其路径添加到JDBC连接URL中:

spring.datasource.tomcat.jdbc-url=jdbc:mysql://localhost:3306/yourdb?useSSL=true&requireSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useServerPrepStmts=true&rewriteBatchedStatements=true&cachePrepStmts=true&useAffectedRows=true&sslProtocol=TLSv1.2&sslTrustStore=/path/to/truststore.jks&sslTrustStorePassword=yourtruststorepassword

③ MySQL服务器端配置

检查MySQL服务器配置(my.cnf或my.ini文件),确保公钥检索,或者确认是否真的需要这个功能。如果问题依然存在,检查数据库用户是否有足够的权限进行操作,以及网络防火墙设置是否阻止了必要的通信。如果是在云服务上运行,还需要检查云服务提供商的安全组规则和VPC设置。

 

 

 

二、标题

 

 

三、标题

 

 

 

— 业精于勤荒于嬉,行成于思毁于随 —

标签:8.0,jdbc,java,31,Question,12,mysql,Answer,com
From: https://www.cnblogs.com/houhuilinblogs/p/18293234

相关文章

  • debian12安装zsh及ohmyzsh
    1.安装基本工具sudoaptupdate&&sudoaptupgrade-ysudoaptinstallzshgitcurl-y2.设置默认终端chsh-s/bin/zsh3.安装zsh通过下列任一方式安装:MethodCommandcurlsh-c"$(curl-fsSLhttps://install.ohmyz.sh/)"wgetsh-c"$(wget-O-https......
  • Java基础进阶——128陷阱(剖析Integer类的自动拆箱和装箱)
    一、什么是128陷阱?下面用一段代码展示了什么是128陷阱:publicstaticvoidmain(String[]args){Integera=10;Integerb=10;Integeraa=127;Integerbb=127;Integeraaa=128;Integerbbb=128;......
  • 012 彩色化LOG
    实验要求实现分支:ch1完成实验指导书中的内容并在裸机上实现 hello world 输出。实现彩色输出宏(只要求可以彩色输出,不要求log等级控制,不要求多种颜色)隐形要求可以关闭内核所有输出。从lab2开始要求关闭内核所有输出(如果实现了log等级控制,那么这一点自然就实现了)。......
  • UVA12342 Tax Calculator 题解
    题目传送门题目大意题目描述某国所得税计算十分复杂。该国政府指定你制作一个自动计算所得税的程序。以下是该国计算所得税的规则:所得税免征额为180000180000......
  • POJ 3126 Prime Path
    题目链接:POJ3126【PrimePath】思路    由于最多有100组样例,所以直接先初始化判断出1000-9999之间的数字是否是素数。然后再对每个题目所给的四位数进行BFS搜索,依次对每个数位进行枚举,使用0-9的每一个数字对每一个数位进行替换,注意千位上的数字不能为0。然后检验当前......
  • Python酷库之旅-第三方库Pandas(012)
    目录一、用法精讲28、pandas.HDFStore.keys函数28-1、语法28-2、参数28-3、功能28-4、返回值28-5、说明28-6、用法28-6-1、数据准备28-6-2、代码示例28-6-3、结果输出29、pandas.HDFStore.groups函数29-1、语法29-2、参数29-3、功能29-4、返回值29-5、说明29......
  • 【转】你了解 localhost 与 127.0.0.1 的区别吗?
    引言在信息技术的世界里,localhost和127.0.0.1频繁出现在各种网络及软件开发的场景之中。它们似乎指向同一个意义——那就是你的本地机器。但仔细探究之下,你会发现它们之间其实存在着一些微妙的差异。今天,我们就来深究这两者之间的区别,并揭示它们在实际应用中的重要性。基本概......
  • 12张图描述大厂秒杀项目的工作细节,必须收藏,面试必备
    秒杀架构是一种特别优化以应对极高并发流量和瞬间大量请求的系统设计。它通常包括:高容量设计,前端优化,服务扩展性,负载均衡,异步处理,数据库优化,服务解耦,弹性伸缩,限流策略,监控告警,安全防护,降级容错等。接下来通过12张图描述秒杀背后的相关工作。肖哥弹架构跟大家......
  • HDU 1312 RED AND BLACK
    题目链接:HDU1312【REDANDBLACK】思路    简单搜索,输入数据时,找出起点位置,然后从七点位置开始搜素能到达的所有位置并记录,使用check()函数判断当前位置可以走吗,可以走就把当前位置放入队列中,并将当前位置修改为非黑色位置,防止重复进入。代码#include<bits/stdc+......
  • 128陷阱通俗理解
    publicclasscomjava{publicstaticvoidmain(String[]args){intn=128;intn1=128;intm=1270;Integerm1=1270;Integerd=128;Integerd1=128;System.out.println(n==n1);S......