解決Spring Cloud Alibaba Nacos No DataSource Set 連不上數(shù)據(jù)庫(數(shù)據(jù)庫信息無誤)

新項目用的是Nacos這套東西,細(xì)節(jié)有點坑.

動不動就報No DataSource Set,明明數(shù)據(jù)庫連接信息沒有任何問題,話不多說
一共就2步:

1.確認(rèn)自己的jdbc連接是否正確,有沒有加時區(qū)

#這是我的配置
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456

2.下載zip包重新運行nacos

重新打包后的zip壓縮包GItHub地址

我是通過修改源代碼重新打包解決問題的,可以先看能不能解決你的問題.可以解決的話,可以直接用這個包當(dāng)server,也可以走第三步第四步自己編譯

3.自己編譯源代碼

注意:確定上面github下載的壓縮包能夠解決你的問題,可以直接使用該包,也可以按照下面重新打包
注意:確定上面github下載的壓縮包能夠解決你的問題,可以直接使用該包,也可以按照下面重新打包
注意:確定上面github下載的壓縮包能夠解決你的問題,可以直接使用該包,也可以按照下面重新打包

可以的話,點個贊唄

入口:
com.alibaba.nacos.config.server.service.datasource.ExternalDataSourceServiceImpl#init()

在init方法中追加代碼

            if(Objects.isNull(jt.getDataSource())){
            jt.setDataSource(dataSourceList.get(0));
            }

如下圖


image.png

4.重新打包即可
進(jìn)入nacos根目錄,執(zhí)行maven命令

mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

新打的包在 distribution/target里面用新的就沒問題了

原因猜測:

Nacos里面配置了多個JdbcTemplate,有可能某些配置導(dǎo)致Nacos誤以為我們是多個數(shù)據(jù)庫,所以有部分JdbcTemplate Bean沒有設(shè)置數(shù)據(jù)源,報No DataSource Set.

注意: 如果真的用了多個數(shù)據(jù)源的話就需要判斷jdbcTemplate需要加載加載那個數(shù)據(jù)庫參數(shù)了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容