MyBatisPlus - [07] Q&A
题记部分
001 || Public Key Retrieval is not allowed

通常出现在使用JDBC连接数据库时,特别时在尝试通过SSL/TLS加密连接到MySQL或MariaDB数据库时。这个错误提示意味着驱动程序尝试从服务器获取公钥,但该操作被配置禁止了。解决方案如下:
(1)修改连接字符串
在JDBC URL中添加 allowPublicKeyRetrieval=true 参数来允许公钥检索。如:
jdbc:mysql://your_host:3306/your_database?useSSL=true&allowPublicKeyRetrieval=true
(2)使用正确的SSL设置
如果需要使用SSL,并且希望保持较高的安全性,应该配置好所有的SSL相关参数,包括提供有效的CA证书、客户端证书和私钥等。确保你已经正确设置了sslMode参数(如VERIFY_CA或VERIFY_IDENTITY),并且提供了相应的证书文件路径。
jdbc:mysql://your_host:3306/your_database?useSSL=true&sslMode=VERIFY_CA&serverSslCert=/path/to/ca-cert.pem
(3)禁用SSL
如果不需要SSL连接,最简单的方法是禁用它。可以通过设置useSSL=false来实现
jdbc:mysql://your_host:3306/your_database?useSSL=false
禁用SSL会降低连接的安全性,因为传输的数据将不会被加密。只有在网络环境被认为是安全的情况下才应该这样做。
(4)更新MySQL驱动
确保正在使用最新版本MySQL Connector/J(JDBC驱动)。较新的驱动版本可能修复了一些已知的问题,并且默认启用了更安全的行为。
最佳实践
- 安全性优先:尽量避免直接设置allowPublickKeyRetrieval=true,除非你完全理解其带来的潜在安全风险。
- 配置SSL:如果可能的话,总是配置完整的SSL设置以确保数据传输的安全性。
- 更新依赖:定期检查并更新你的数据库驱动和其他相关依赖,以获得最新的功能和安全补丁。
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=true&allowPublicKeyRetrieval=true&serverTimezone=UTC
spring.datasource.username=myuser
spring.datasource.password=mypassword
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC
spring.datasource.username=myuser
spring.datasource.password=mypassword
— 业精于勤荒于嬉,行成于思毁于随 —
MyBatisPlus - [07] Q&A的更多相关文章
- the comment lines of the blast tabular format
进行Blast比对,用参数-m 6 可以以列表的方式输出结果,结果中从左到右每一列的意义分别是: [00] Query id [01] Subject id [02] % identity [03] ...
- STL学习之路
本文面向的读者:学习过C++程序设计语言(也就是说学习过Template),但是还没有接触过STL的STL的初学者.这实际上是我学习STL的一篇笔记,老鸟就不用看了. 什么是泛型程序设计 我们可以简单 ...
- 【转】ASP.NET MVC教程
转自:http://www.cnblogs.com/QLeelulu/category/123326.html ASP.NET MVC的最佳实践与性能优化的文章 摘要: 就一些文章链接,就不多废话了. ...
- 用HMM(隐马)图解三国杀的于吉“质疑”
·背景 最近乘闲暇之余初探了HMM(隐马尔科夫模型),觉得还有点意思,但是网上的教程都超级枯草,可读性很差,抄来抄去的,一堆公式仍在你面前,谁能搞的懂(但园内的两篇写的还算不错.真才实学).在熬制3天 ...
- [转载] 基于Dubbo的Hessian协议实现远程调用
转载自http://shiyanjun.cn/archives/349.html Dubbo基于Hessian实现了自己Hessian协议,可以直接通过配置的Dubbo内置的其他协议,在服务消费方进行 ...
- Ambari 2.4 在 CentOS 7.4 因 TLS_1.2 协商内部错误导致注册失败
问题背景 业务准备在天翼云上搭建一套线上环境,VM 操作系统版本为 CentOS Linux release 7.4.1708,但是在 ambari Web 管理页面上部署hadoop节点主机的时候, ...
- IGS_学习笔记03_Integrated SOA Gateway设定配置(案例)
20150506 Created By BaoXinjian
- 07 模型层 orm相关查询 F查询Q查询 django开启事务
一.Django终端打印SQL语句 如果你想知道你对数据库进行操作时,Django内部到底是怎么执行它的sql语句时可以加下面的配置来查看 在Django项目的settings.py文件中,在最后复制 ...
- [小北De编程手记] : Lesson 07 - Selenium For C# 之 窗口处理
在实际的自动化测试过程中,我们会遇见许多需要对窗口进行处理的情况.比如,点击删除某条信息的时候系统会显示一个Alert框.或者点击某个超链接时会在浏览器中打开一个新的页面.这一篇,来和大家分享一下Se ...
- Uboot 2014.07 makefile分析 - 其他Cortex系列
uboot的官网可以通过谷歌搜索得到,显示结果第一个链接就是. 官网:: http://www.denx.de/wiki/U-Boot ftp下载: ftp://ftp.denx.de/pub/u-b ...
随机推荐
- 禁止所有搜索爬虫访问网站指定目录robots.txt
禁止所有搜索爬虫访问网站指定目录 用自己私人的服务器来测试吧,99买阿里云 文件放置不让爬取的网站文件夹目录里 robots.txt User-agent: * Disallow: / User-Ag ...
- Qt/C++摄像头采集/二维码解析/同时采集多路/图片传输/分辨率帧率可调/自动重连
一.前言 本地摄像头的采集可以有多种方式,一般本地摄像头会通过USB的方式连接,在嵌入式上可能大部分是CMOS之类的软带的接口,这些都统称本地摄像头,和网络摄像头最大区别就是一个是通过网络来通信,一个 ...
- 开源即时通讯IM框架MobileIMSDK的H5端技术概览
一.基本介绍 MobileIMSDK的H5端是一套纯JS编写的基于标准WebSocket的即时通讯库: 1)超轻量级.极少依赖: 2)纯JS编写.高度提炼,简单易用: 3)基于标准WebSocket协 ...
- HP 打印机驱动
HP Universal Print Driver Series for Windows https://support.hp.com/cn-zh/drivers/selfservice/hp-uni ...
- [LC793]阶乘函数后 K 个零
题目描述 f(x) 是 x! 末尾是 0 的数量.(回想一下 x! = 1 * 2 * 3 * ... * x,且 0! = 1 ) 例如, f(3) = 0 ,因为 3! = 6 的末尾没有 0 : ...
- 编译树莓派Linux内核
1.建议边看视频边跟着教程走 https://www.bilibili.com/video/av91990721?zw 2.准备工作 下载官方提供的交叉编译工具链 git clone https:// ...
- 单片机的主程序中为什么都要加一个while(1)?
*** * C51 为什么都要加一个while(1)?****** while(1)的作用: while(1) 是一个死循环 为了不让代码继续向下执行. 单片机中使用while(1),大部分:为了防止 ...
- Android平台架构及特性
Android平台架构及特性 Android系统的底层是建立在Linux系统之上,改平台由操作系统.中间件.用户界面和应用软件四层组成,它采用一种被称为软件叠层(Software Stack)的方式进 ...
- biancheng-MySQL教程
目录http://c.biancheng.net/mysql/ 1数据库入门2MySQL的安装和配置3MySQL数据库的基本操作4数据库设计5MySQL数据类型和存储引擎6MySQL数据表的基本操作7 ...
- C#遍历获取文件夹下所有文件
1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using ...