nacos1.1.4 配置MySQL8.0+持久化,亲测可以

转载自:nacos 配置MySQL8.0+持久化

文章目录

Nacos是阿里的一个开源产品,它是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。
Nacos 是构建以“服务”为中心的现代应用架构的服务基础设施。

官网地址:https://nacos.io

1. 问题描述

nacos 版本:1.1.4
mysql 版本:8.0.20

单机模式时nacos默认使用嵌入式数据库实现数据的存储,若想使用外部mysql存储nacos数据,要求MySQL版本 5.6.5+,且mysql 8 以下

当使用MySQL 8.0+ 版本是无法成功启动的

2. 解决方案

  1. 克隆nacos源码

    git clone https://github.com/alibaba/nacos.git
    # 切换到 nacos 1.1.3 tag
    git checkout 1.1.3
    
  2. 修改nacos项目根目录下的pom.xml,手动指定mysql驱动版本

    PS:这里要注意mysql驱动在nacos-naming和nacos-config两个模块引入过,如果不想修改主项目的pom文件这两个地方都要进行修改

    <!-- JDBC libs -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <!-- 这里使用8.0.19,可根据实际情况调整 -->
        <version>8.0.19</version>
    </dependency>
    

    在这里插入图片描述

  3. 修改nacos-naming相关类

    // 修改	com.alibaba.nacos.naming.hanlthcheck.MysqlHealthCheckProcessor
    
    // 修改前
    import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
    
    // 修改后
    import com.mysql.cj.jdbc.MysqlDataSource;
    

    在这里插入图片描述

  4. 修改mysql连接参数

    mysql8.X版本需要指定时区等参数

    // 找到nacos-console下的src/main/resources/META-INF/nacos-	default.properties 并修改db.url的数据库连接配置为
    characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    
    // 修改前
    db.url.0=jdbc:mysql://11.162.196.161:3306/diamond_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.url.1=jdbc:mysql://11.163.152.91:3306/diamond_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    
    // 修改后
    db.url.0=jdbc:mysql://11.162.196.161:3306/diamond_devtest?characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    db.url.1=jdbc:mysql://11.163.152.91:3306/diamond_devtest?characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    

    在这里插入图片描述

3. 打包运行

执行构建命令

mvn -Prelease-nacos -DskipTests clean install -U

在这里插入图片描述

打包后的文件在distribution模块下的target目录,拷贝至定义好的目录

在这里插入图片描述
修改配置文件conf/application.properties

// 找到nacos下的conf/application.properties 增加mysql数据源配置
# mysql datasource
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
db.user=root
db.password=yourpassword

运行脚本bin/startup.cmd(linux系统运行.sh脚本)
在这里插入图片描述
在这里插入图片描述

启动成功,可通过浏览器访问 http://127.0.0.1:8848/nacos

用户名和密码默认都为nacos
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值