Docker 启动 Nacos 报错:No DataSource set


请添加图片描述

👨🏻‍💻 热爱摄影的程序员
👨🏻‍🎨 喜欢编码的设计师
🧕🏻 擅长设计的剪辑师
🧑🏻‍🏫 一位高冷无情的编码爱好者
大家好,我是 DevOps 工程师
欢迎分享 / 收藏 / 赞 / 在看!

【问题】笔者使用 docker-compose 构建的 Nacos 容器,每当重启 Docker 引擎后启动 Nacos 报错:No DataSource set,且笔者相关的数据源配置是没有问题的。

笔者相关环境及软件信息如下:

  • 操作系统:Apple M1 Pro 版本 12.6.3
  • Nacos:v2.2.2-slim
  • MySQL:8.0.32
Caused by: com.alibaba.nacos.api.exception.NacosException: Nacos Server did not start because dumpservice bean construction failure :
No DataSource set

请添加图片描述

【原因】
在 MySQL JDBC 驱动程序的 8.0.22 版本之前,如果服务器的公钥未明确信任或者密钥检索失败,连接可能会失败。通过在连接字符串中设置"&allowPublicKeyRetrieval=true",可以指示驱动程序允许检索公钥,即使它未明确信任。

"&allowPublicKeyRetrieval=true"是 MySQL JDBC 驱动程序中的一个参数,用于在连接字符串中允许在与 MySQL 服务器进行 SSL/TLS 加密握手期间检索公钥。该参数在连接到需要 SSL/TLS 加密以实现安全通信的 MySQL 服务器时是相关的。

然而,从 MySQL JDBC 驱动程序版本 8.0.22 开始,默认情况下"allowPublicKeyRetrieval"的值已更改为"true"。因此,在大多数情况下,您可能不需要显式指定此参数,除非使用较旧的驱动程序版本或希望在配置中明确指定。

使用 MySQL 的 SSL/TLS 加密提供了额外的安全性,通过加密在客户端和服务器之间传输的数据。如果 MySQL 服务器已配置为使用 SSL/TLS,请在 JDBC 连接中启用 SSL 以确保安全通信。

【解决】在 JDBC 驱动程序中添加上参数 ​&allowPublicKeyRetrieval=true,就可以正常启动。

db.url.0=jdbc:mysql://127.0.0.1:3306/mdb?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true![请添加图片描述](https://img-blog.csdnimg.cn/8cc8aac9de864b2190061bda7acbf451.png)

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/55856.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一款开源免费、更符合现代用户需求的论坛系统:vanilla

对于个人建站来说,WordPress相信很多读者都知道了。但WordPress很多时候我们还是用来建立自主发布内容的站点为主,适用于个人博客、企业主站等。虽然有的主题可以把WordPress变为论坛,但效果并不是很好。 所以,今天给大家推荐一个…

基于图像形态学处理的目标几何形状检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .................................................... %二进制化图像 Images_bin imbinari…

大数据技术之Clickhouse---入门篇---SQL操作、副本

星光下的赶路人star的个人主页 积一勺以成江河,累微尘以崇峻极 文章目录 1、SQL操作1.1 Insert1.2 Update 和 Delete1.3 查询操作1.4 alter操作1.5 导出数据 2、副本2.1 副本写入流程2.2 配置步骤 1、SQL操作 基本上来说传统关系型数据库(以 MySQL 为例…

TiDB 源码编译之 PD/TiDB Dashboard 篇

作者: ShawnYan 原文来源: https://tidb.net/blog/a16b1d46 TiDB TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融…

使用C#的窗体显示与隐藏动画效果方案 - 开源研究系列文章

今天继续研究C#的WinForm的显示动画效果。 上次我们实现了无边框窗体的显示动画效果(见博文:基于C#的无边框窗体动画效果的完美解决方案 - 开源研究系列文章 ),这次介绍的是未在任务栏托盘中窗体的显示隐藏动画效果的实现代码。 1、 项目目录&#xff1b…

unity TextMeshPro 富文本

<b>粗体标签</b> <i>斜体标签</i> <u>下划线标签</u> <s>删除线标签</s> <sup>上标标签</sup>前面后边上标签 5<sup>。</sup>C <sub>下标标签&#xff0c;如&#xff1a;</sub>H<sub&…

解决Win11右键菜单问题

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; 程序日常 ✨特色专栏&…

MyBatis源码剖析之Mapper代理方式细节

MyBatis是一个流行的Java持久层框架&#xff0c;它提供了多种方式来执行数据库操作&#xff0c;其中之一就是通过Mapper代理方式。通过Mapper代理方式&#xff0c;开发者可以编写接口&#xff0c;然后MyBatis会动态地生成接口的实现类&#xff0c;从而避免了繁琐的SQL映射配置。…

无涯教程-Perl - chop函数

描述 此函数从EXPR,LIST的每个元素或$_(如果未指定值)中删除最后一个字符。 语法 以下是此函数的简单语法- chop VARIABLEchop( LIST )chop返回值 此函数返回从EXPR中删除的字符,并且在列表context中,从LIST的最后一个元素中删除该字符。 例 以下是显示其基本用法的示例…

Vue2 第十七节 Vue中的Ajax

1.Vue脚手架配置代理 2.vue-resource 一.Vue脚手架配置代理 1.1 使用Ajax库 -- axios ① 安装 : npm i axios ② 引入: import axios from axios ③ 使用示例 1.2 解决开发环境Ajax跨域问题 跨域&#xff1a;违背了同源策略&#xff0c;同源策略规定协议名&#xff0…

Go Windows下开发环境配置(图文)

Go Windows下开发环境配置 下载 安装 点击下载的安装包进行安装。安装路径可以选择到自己的目录。 环境变量配置 GOROOT&#xff1a;&#xff08;指定到安装目录下&#xff09; GOPATH&#xff1a;&#xff08;是工作空间&#xff09; path&#xff1a;在安装时已经添加了…

linux gcc __attribute__

__attribute__ 1. 函数属性1.1 __attribute__((noreturn))1.2 __attribute__((format))1.3 __attribute__((const)) 2. 变量属性2.1. __attribute__((aligned))2.2. __attribute__((packed)) 3. 类型属性 __attribute__ 是 GCC 编译器提供的一种特殊语法&#xff0c;它可以用于…