天天看點

Nacos 資料持久化 mysql8.0

一.問題描述

直接下載下傳的穩定版本nacos編譯後的檔案,不支援mysql8及其以上版本,按照官網文檔:https://nacos.io/zh-cn/docs/deployment.html 執行完成之後啟動會報錯,如下(錯誤資訊沒有截取完整):

Nacos 資料持久化 mysql8.0

二.問題處理

下載下傳nacos源碼 https://github.com/alibaba/nacos 選擇需要的版本,我這裡選擇的是1.0.0-R3

1.修改最外層pom.xml 中 mysql驅動版本,我這邊使用的是8.0.16

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.16</version>
</dependency>      

2.修改naming這個項目 com.alibaba.nacos.naming.healthcheck 包下的  MysqlHealthCheckProcessor 類的第24行導包為:

import com.mysql.cj.jdbc.MysqlDataSource;      

3.由于mysql8及其以上版本需要帶時區,是以還需要修改 console這項目 resources/META-INF下 nacos-default.properties這個檔案中的db.url

db.url.0=jdbc:mysql://11.162.196.161:3306/diamond_devtest?serverTimezone=GMT%2B8&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.url.1=jdbc:mysql://11.163.152.91:3306/diamond_devtest?serverTimezone=GMT%2B8&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true      

三、打包

cmd指令視窗進入項目根目錄執行:

mvn -Prelease-nacos clean install -U      

執行完成之後打包好的檔案在項目根目錄下:

根目錄\distribution\target      

建立資料庫nacos并運作nacos/conf/nacos-mysql.sql 檔案,建立表格

配置自己的mysql位址  在nacos/conf/application.properties中添加

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?serverTimezone=GMT%2B8&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456      

注意:在db.url.0中添加時區 serverTimezone=GMT%2B8

打包好的檔案:連結:https://pan.baidu.com/s/1xVeg0t98BKlUbgvQMzTBxA 提取碼:vssl 

四、成果展示

Nacos 資料持久化 mysql8.0
Nacos 資料持久化 mysql8.0