Nacos持久化Mysql8.0版本
有關Nacos之前寫過三篇文章。
Spring Cloud Alibaba(3)---Nacos概述
Spring Cloud Alibaba(4)---Nacos(注冊中心)
Spring Cloud Alibaba(5)---Nacos(配置中心)
一、背景
我們服務的信息、配置的信息都放在哪的?官網有說過
當我們使用默認配置啟動Nacos時,所有配置文件都被Nacos保存在了內置的數據庫中。
這里所指的內置數據庫其實就是內存中,既然是配置在內存中,那么每當我們重啟Nacos的時候,所有配置好的信息都會丟失,這顯然是我們不能夠接受的,所以我們就需要去配置,
讓配置數據存在Mysql中,這樣當我們重啟服務器的時候,配置數據依舊在。
架構信息
Nacos 1.4.2 + MYSQL 8.0.22
二、Nacos客戶端部署
客戶端部署其實官方給了兩種方式 一種是 從 Github 上下載源碼。另一種是 直接下載壓縮包。官方地址
之前在寫Nacos概述的時候,是直接去官網下載 nacos-server-1.3.2.tar.gz 的壓縮包,下載解壓后 通過命令運行。這里我們需要用第二種方式,我們直接去拉nacos源碼后,
自己打成nacos-server-1.4.2-SNAPSHOT.tar.gz 壓縮包。
為什么要不用官方直接提供的壓縮包,而需要我們自己下源碼在打成壓縮包,這樣多次一舉呢?
是因為,我們是 MYSQL 8.0.22 版本的,所以我們要下載源碼,把pom文件中對應的連接數據庫的驅動jar包改成8.0.22版本的,然后重新打成壓縮包。
1、拉取源碼
這個當前拉取的是1.4.2版本的Nacos,你也可以指定拉取版本
git clone https://github.com/alibaba/nacos.git
2、修改Mysql連接驅動
1.4.2版本的Nacos所用的mysql-connector-java版本是8.0.21,這里修改成 8.0.22。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
注意
其實這里可以不用修改,因為8.0.21和8.0.22,差異很小,所以我們不用修改都是可以的。就是說我們都不用取拉源碼在通過命令打包,而是直接下載1.4.2版本的
壓縮包就可以了。當然如果你的是1.3.1以下版本的Nacos,那么Mysql驅動是5.7版本的那么這個是需要修改成8以上版本的。
3、打包
進入nacos目錄
cd nacos
maven打包
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
如果直接成功后,在distribution/target/
目錄中就已經有相應的解壓包了。

4、解壓
tar -xvf nacos-server-1.4.2-SNAPSHOT.tar.gz
接下來我們先不啟動服務器,因為我們還需要修改一些配置文件
三、修改配置文件
1、初始化數據庫
Nacos的數據庫腳本文件在我們下載Nacos-server時的壓縮包中就有
進入nacos\conf目錄,初始化文件:nacos-mysql.sql
此處我創建一個名為 nacos
的數據庫,然后執行初始化腳本,成功后會生成 12 張表

2、修改配置文件
它的配置文件也在 nacos\conf
目錄下,名為 application.properties
,在文件底部添加數據源配置:
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
3、啟動服務器
現在數據庫和配置都已經修改了,那么就啟動服務器
//先進入bin目錄
cd nacos/bin
啟動命令(standalone代表着單機模式運行,非集群模式):
sh startup.sh -m standalone
如果您使用的是ubuntu系統,或者運行腳本報錯提示[[符號找不到,可嘗試如下運行:
bash startup.sh -m standalone
注意
執行命令地方在上面壓縮的 distribution/target/nacos-server-1.4.2-SNAPSHOT/nacos/bin 位置下,而不是在distribution的bin下。
啟動后,能夠正常訪問下面地址,那就說明已經配置成功,
http://127.0.0.1:8848/nacos
如果上面訪問失敗,那就去 nacos\log 目錄下,名為 nacos.log
看下有沒有錯誤日志
四 測試
1、在客戶端新添加一條配置數據

看列表 也顯示這條配置集已經創建成功

2、查看數據庫
既然客戶端都生成成功了,那就來看下數據庫中有沒有持久化這條數據

很明顯 數據中也有這條數據,這樣就算nacos重新啟動這條數據也還是會有了。
參考
3、Spring Cloud Alibaba基礎教程:Nacos的數據持久化
少說多做,句句都會得到別人的重視;多說少做,句句都會受到別人的忽視。(6)