美文网首页
解决Spring Cloud Alibaba Nacos No

解决Spring Cloud Alibaba Nacos No

作者: 伐无道 | 来源:发表于2023-05-04 11:53 被阅读0次

    新项目用的是Nacos这套东西,细节有点坑.

    动不动就报No DataSource Set,明明数据库连接信息没有任何问题,话不多说
    一共就2步:

    1.确认自己的jdbc连接是否正确,有没有加时区

    #这是我的配置
    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地址

    我是通过修改源代码重新打包解决问题的,可以先看能不能解决你的问题.可以解决的话,可以直接用这个包当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.重新打包即可
    进入nacos根目录,执行maven命令

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

    新打的包在 distribution/target里面用新的就没问题了

    原因猜测:

    Nacos里面配置了多个JdbcTemplate,有可能某些配置导致Nacos误以为我们是多个数据库,所以有部分JdbcTemplate Bean没有设置数据源,报No DataSource Set.

    注意: 如果真的用了多个数据源的话就需要判断jdbcTemplate需要加载加载那个数据库参数了

    相关文章

      网友评论

          本文标题:解决Spring Cloud Alibaba Nacos No

          本文链接:https://www.haomeiwen.com/subject/pmsxsdtx.html