• nacos mysql8.0修改


    官网下载的Nacos mysql由于驱动过低只支持5.X版本,使用8.X版本的mysql时无法

    两种方法

    第一种

    克隆nacos源码 分支1.0.0-RC3

    $ git clone https://github.com/alibaba/nacos.git
    $ git checkout 1.0.0-RC3
    
    • 修改nacos项目根目录下的pom.xml,手动指定mysql驱动版本

    PS:这里要注意mysql驱动在nacos-naming和nacos-config两个模块引入过,

    如果不想修改主项目的pom文件这两个地方都要进行修改

    <!-- JDBC libs -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <!-- 这里使用8.0.9-rc,可根据实际情况调整 -->
        <version>8.0.9-rc</version>
    </dependency>
    
    
    • 修改nacos-naming相关类
    // 修改com.alibaba.nacos.naming.hanlthcheck.MysqlHealthCheckProcessor
    
    // 修改前
    import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
    
    // 修改后
    import com.mysql.cj.jdbc.MysqlDataSource;
    
    
    • 修改mysql连接参数

    mysql8.X版本需要指定时区等参数 &serverTimezone=Asia/Shanghai

    // 找到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
    
    • 执行构建命令
    $ mvn -Prelease-nacos -DskipTests clean install -U
    
    

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

    // 找到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=这是一个密码
    

    第二种

    提示无法连接数据库,检查配置的数据库连接确认无误。
    conf/application.proporties

    spring.datasource.platform=mysql
    db.num=1
    db.url.0=jdbc:mysql://localhost:3306/nacos_config?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
    db.user=root
    db.password=123456
    

    在nacos安装目录下新建plugins/mysql文件夹,并放入8.0+版本的mysql-connector-java-8.0.xx.jar,重启nacos即可。
    启动时会提示更换了mysql的driver-class类。

  • 相关阅读:
    etcd:从应用场景到实现原理的全方位解读
    open-falcon编写的整个脑洞历程
    开源还是商用?十大云运维监控工具横评
    我的后端开发书架2015 2.0版
    【MDCC 2015】友盟数据平台负责人吴磊:移动大数据平台的架构与实践
    Effective Go
    Airbnb JavaScript Style Guide
    Google HTML/CSS Style Guide
    nservicebus教程-目录
    测试
  • 原文地址:https://www.cnblogs.com/nxzblogs/p/13173995.html
Copyright © 2020-2023  润新知