Docker 启动 Nacos 报错:No DataSource set

这篇具有很好参考价值的文章主要介绍了Docker 启动 Nacos 报错:No DataSource set。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


docker启动nacos报错,我的BUG人生,docker,容器,运维,nacos

👨🏻‍💻 热爱摄影的程序员
👨🏻‍🎨 喜欢编码的设计师
🧕🏻 擅长设计的剪辑师
🧑🏻‍🏫 一位高冷无情的编码爱好者
大家好,我是 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

docker启动nacos报错,我的BUG人生,docker,容器,运维,nacos

【解决方案一(正规)】容器构建的服务中,可以使用容器名指定某个容器服务,因此可以修改为:db.url.0=jdbc:mysql://<container_name>:<port>/mdb,其中 <container_name> 为容器名称,而不是用具体 IP;<port> 要使用容器内端口号,而不是映射的宿主机端口号,如端口映射为:"3307:3306",应该填写 3306,而不是 3307

【解决方案二】在 JDBC 驱动程序中要使用网卡的 IP。如:db.url.0=jdbc:mysql://192.168.0.120:3306/mdb,否则 Nacos 将无法找到对应的驱动链接。

【解决方案三】在 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=truedocker启动nacos报错,我的BUG人生,docker,容器,运维,nacos

【原因】
在 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 以确保安全通信。
docker启动nacos报错,我的BUG人生,docker,容器,运维,nacos文章来源地址https://www.toymoban.com/news/detail-721373.html

到了这里,关于Docker 启动 Nacos 报错:No DataSource set的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker 安装并启动nacos2.2.0版本(成功解决报错nacos-logback.xml找不到)

    最近想写毕设,拉了一个若依开源后端框架,nacos版本需要2.xx以上,因为以前用的是1.4.1版本的,所以需要卸载重装,网上找了很多教程,安装完之后查看nacos日志一直报错提示nacos-logback.xml找不到,在conf文件夹中配置了该文件还是不行,无奈只能卸载重装。 这里记录一下成

    2024年01月25日
    浏览(54)
  • 【nacos升级到2.2.2版本】报错:errCode: 102, errMsg: dataSource or tableName is null

    为解决Nacos存在权限绕过的漏洞问题,需要升级到最新版本 1、下载最新版本【https://github.com/alibaba/nacos/releases/】 2、上传到对应服务器,备份原先的nacos,替换bin,conf,target文件,在conf目录下,修改对应(复制原先)的application.properties文件,再启动即可 或者 上传到对应服务

    2024年02月11日
    浏览(36)
  • Nacos 2.2.1启动报错

    Nacos 2.2.1下载好官方代码后可以参考火车头-110的文章。 nacos2.2.1本地启动 我遇到一个比较坑的问题是按照这位大佬文章设置后还是会报错: 网上搜了一下是数据库配置有问题,按照别人的加时区什么的搞了半天还是不行, 后来发现是官方默认配置里consolesrcmainresourcesappl

    2024年02月14日
    浏览(35)
  • Docker启动安装nacos

    当需要在本地或云环境中部署和管理微服务时,Nacos是一个非常流行的选择。Nacos是一个用于动态服务发现、配置管理和服务管理的开源平台。在本文中,我们将详细介绍如何使用Docker来启动和安装Nacos。 首先,确保你的系统已经安装了Docker。Docker可以在各种操作系统上安装,

    2024年02月15日
    浏览(59)
  • Docker + MYSQL 启动nacos

    Docker启动nacos默认用的是内存数据库,重启docker容器以后,nacos配置会丢失,非常不方便。所以需要修改为使用Mysql作为nacos的存储。 1.数据库 创建mysql数据库,过程省略,将nacos 的mysql脚本在数据库中进行导入。 mysql脚本可以在nacos的容器中找到 /home/nacos/conf/ mysql-schema.sql 2.目

    2024年02月16日
    浏览(39)
  • 解决Nacos2.2.1启动报错

    很明显 ,报错原因是secret key参数 长度不够 打开nacos文件夹 - conf - application.properties 找到以下配置: nacos.core.auth.plugin.nacos.token.secret.key= 在后面添加随机参数作为nacos的加密密钥, 规则是加密密钥长度 =256 bits 或者 = 32 bytes 我添加了50位英文、数字成功运行 成功点亮

    2024年02月11日
    浏览(43)
  • 【Docker】Docker+Nacos+MySQL,Docker安装启动Nacos(详细讲解、全网最细),手把手教你Docker搭建nacos单机版

    点击跳转:Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套(质量有保证,内容详情) 本文描述了如何用Docker安装Nacos的单机版,含单机非持久化版本和单机持久化版本 Nacos作为微服务的配置中心,无论是在开发测试和生产中,用户更希望Nacos能保存用户的配置

    2024年02月12日
    浏览(45)
  • docker启动nacos(单机模式、集群模式)

    docker pull nacos/nacos-server:v2.1.2 2.1.先以单机模式运行nacos docker run -d --name nacos -p 8848:8848 -e MODE=standalone nacos/nacos-server:v2.1.2 查看运行过程:docker logs -f nacos ps:如果启动失败可能是服务器内存过小,如果要限制nacos 占用的内存大小,使用以下语句 docker run --name nacos -e JVM_XMS=256m -

    2023年04月17日
    浏览(39)
  • Docker启动安装nacos(详情讲解,全网最细)

    安装之前你需要准备一个mysql,当前安装方式是将数据持久化到数据库中的,这里的部署是单机模式 PS:这是拉取最新的nacos版本,如果需要拉取别的版本可以加:版本号(如:docker pull nacos/nacos-server:v2.2.0) PS:这一步是添加映射文件夹,将宿主机的文件映射到nacos容器中 P

    2024年02月03日
    浏览(40)
  • docker 启动 nacos 连接本地数据库 踩坑

    报错开始行 后面找到一行关键错误 一般来讲本地数据库是不会放开远程连接的 所以我这边是新建一个用户 并授权 开始远程连接 创建nacos用户 将nacos数据管理权限授权给nacos 将新配置刷新到缓存中,这样就不用重启数据库 修改配置 application.properties文件 再次启动

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包