题记部分

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_CAVERIFY_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的更多相关文章

  1. the comment lines of the blast tabular format

    进行Blast比对,用参数-m 6 可以以列表的方式输出结果,结果中从左到右每一列的意义分别是: [00] Query id [01] Subject id [02] % identity [03] ...

  2. STL学习之路

    本文面向的读者:学习过C++程序设计语言(也就是说学习过Template),但是还没有接触过STL的STL的初学者.这实际上是我学习STL的一篇笔记,老鸟就不用看了. 什么是泛型程序设计 我们可以简单 ...

  3. 【转】ASP.NET MVC教程

    转自:http://www.cnblogs.com/QLeelulu/category/123326.html ASP.NET MVC的最佳实践与性能优化的文章 摘要: 就一些文章链接,就不多废话了. ...

  4. 用HMM(隐马)图解三国杀的于吉“质疑”

    ·背景 最近乘闲暇之余初探了HMM(隐马尔科夫模型),觉得还有点意思,但是网上的教程都超级枯草,可读性很差,抄来抄去的,一堆公式仍在你面前,谁能搞的懂(但园内的两篇写的还算不错.真才实学).在熬制3天 ...

  5. [转载] 基于Dubbo的Hessian协议实现远程调用

    转载自http://shiyanjun.cn/archives/349.html Dubbo基于Hessian实现了自己Hessian协议,可以直接通过配置的Dubbo内置的其他协议,在服务消费方进行 ...

  6. Ambari 2.4 在 CentOS 7.4 因 TLS_1.2 协商内部错误导致注册失败

    问题背景 业务准备在天翼云上搭建一套线上环境,VM 操作系统版本为 CentOS Linux release 7.4.1708,但是在 ambari Web 管理页面上部署hadoop节点主机的时候, ...

  7. IGS_学习笔记03_Integrated SOA Gateway设定配置(案例)

    20150506 Created By BaoXinjian

  8. 07 模型层 orm相关查询 F查询Q查询 django开启事务

    一.Django终端打印SQL语句 如果你想知道你对数据库进行操作时,Django内部到底是怎么执行它的sql语句时可以加下面的配置来查看 在Django项目的settings.py文件中,在最后复制 ...

  9. [小北De编程手记] : Lesson 07 - Selenium For C# 之 窗口处理

    在实际的自动化测试过程中,我们会遇见许多需要对窗口进行处理的情况.比如,点击删除某条信息的时候系统会显示一个Alert框.或者点击某个超链接时会在浏览器中打开一个新的页面.这一篇,来和大家分享一下Se ...

  10. Uboot 2014.07 makefile分析 - 其他Cortex系列

    uboot的官网可以通过谷歌搜索得到,显示结果第一个链接就是. 官网:: http://www.denx.de/wiki/U-Boot ftp下载: ftp://ftp.denx.de/pub/u-b ...

随机推荐

  1. Windows的树形目录结构

    一.文件.文件夹(目录).逻辑盘.路径的概念 · 文件:是操作系统用来存储和管理信息的基本单位.每个文件都有一个名称,叫文件名.文件名通常由‌基本文件名和‌扩展名两部分组成,其中基本文件名用于说明文件 ...

  2. echarts 图表设置默认选中

    echarts:https://echarts.apache.org/zh/api.html#events.legendselected tfjy1997:https://blog.csdn.net/ ...

  3. 类型判断运算符(as、is、is!)

    类型判断运算符 as.is.is! 运算符是在运行时判断对象类型的运算符. as 类型转换(也用作指定 类前缀)) is 如果对象是指定类型则返回 true is! 如果对象是指定类型则返回 fals ...

  4. 使用 Azure AI Studio 构建和部署使用提示流的问答助驾系统

    使用 Azure AI Studio 构建和部署使用提示流的问答助驾系统 See: Build and deploy a question and answer copilot with prompt ...

  5. TeamViewer 的替代品 ZeroTier + NoMachine

    之前不怎么用 TeamViewer,最近用的多了,特别好用,有点上瘾,在哪儿都能连家里的 RTX,太棒了. 然后它就开始作了. 有没有好的替代方案呢?有人推荐向日葵,向日葵显然是以盈利为目的的我不想再 ...

  6. Java 基于接口的动态代理

    UserDao接口 package com.pry.cn; public interface UserDao { public int add(int a,int b); public String ...

  7. Uninstall or delete MariaDB completely for re-installation

    I am new to this forum so pse forgive me if I am asking a question which already has been answered. ...

  8. archlinux 显卡驱动

    https://arch.icekylin.online/guide/rookie/graphic-driver.html archlinux 显卡驱动# 接天莲叶无穷碧,映日荷花别样红# 近年来,a ...

  9. [转]OpenCV4.8 GPU版本CMake编译详细步骤 与CUDA代码演示

    导 读 本文将详细介绍如何使用CMake编译OpenCV4.8 CUDA版本并给出Demo演示,方便大家学习使用. CMake编译详细步骤 废话不多说,直接进入正题! [1]我使用的工具版本VS201 ...

  10. [转]C# 组合查询条件

    在我们开发过程中经常会遇见一些通过条件获取数据的功能,比如说获取我们的用户信息,查询输入框有用户姓名,部门,入职年份等等,但查询时可能只输入一个条件或多个条件,像这种不确定的查询时,我们应该如何处理. ...