一、前言
前幾天終於學完了Spring Cloud全家桶,於是趁熱打鐵趁着情緒高昂,開始學習Spring Cloud Alibaba,誰知道上來第一步使用Nacos進行服務注冊及中心配置就出現了一堆問題,下面就說一下在win10環境下啟動Nacos報錯的一系列解決方案
二、關於安裝
本着"當然是用最新的"的原則,我打開了Nacos的官網:https://nacos.io,找到了Nacos的最新版本1.3.2:https://github.com/alibaba/nacos/releases/tag/1.3.2,下載好zip包后解壓,興致勃勃打開cmd,切換到${nacos-home}/bin
下運行startup.cmd腳本,劈里啪啦一堆錯,自閉。。。
三、報錯信息及解決方案
-
Unable to start embedded Tomcat
不能啟動內置的Tomcat,打開
${nacos-home}/bin/work/Tomcat/localhost/nacos
文件夾,發現里面居然是空的,然后在nacos安裝文件夾下找啊找,發現${nacos-home}/target
下有nacos-server.jar
這樣一個jar包,於是把這個jar包放到${nacos-home}/bin/work/Tomcat/localhost/nacos
下並重新運行啟動腳本,終於不報“Unable to start embedded Tomcat”的錯誤了,但是... -
CannotGetJdbcConnectionException: Failed to obtain JDBC Connection
又報了一個不能連接數據庫的錯誤,去
${nacos-home}/conf
的文件夾下打開application.properties
文件看了一下,發現是數據庫配置沒有寫,編輯數據庫配置:spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://${server}:${port}/nacos?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC db.user=${user} db.password=${password}
注:記得在數據庫創建nacos庫,並運行
${nacos-home}/conf
下的nacos-mysql.sql
腳本重新運行啟動腳本,但是...
-
CannotGetJdbcConnectionException: Failed to obtain JDBC Connection
這玩意居然又報了一次錯,檢查半天無果,於是去論壇看看大佬有沒有遇到過這個問題,一番查閱后發現,原來是nacos項目導入的是5.6版本的數據庫連接jar包,而我用的是8.0.21版本的mysql數據庫,於是按大佬的方法,在nacos安裝目錄下新建
plugins/mysql
文件夾,並把下載的mysql-connector-java-8.0.21.jar
jar包放進去,再次運行啟動腳本 -
成功運行
四、總結
Spring Cloud Alibaba Nacos的最新版本1.3.2還是有不少坑的,另外nacos默認是以集群方式啟動的,如果${nacos-home}/conf
下的cluster.conf
不配置好的話,也會花式報錯。還有就是有些朋友反饋建了plugins/mysql
文件夾並放入了對應的jar包,還是會報連接數據庫的錯誤,建議數據庫用回5.6版本,或者下載nacos的源碼對里面的pom文件及import導入進行修改,最后還需要修改一下nacos-default.properties
里的屬性並重新打包,后面有空會做一下這個教程。
感謝閱讀!!!