一.問題描述
直接下載的穩定版本nacos編譯后的文件,不支持mysql8及其以上版本,按照官網文檔:https://nacos.io/zh-cn/docs/deployment.html 執行完成之后啟動會報錯,如下(錯誤信息沒有截取完整):
二.問題處理
下載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
四、成果展示