故障详情
Description:
Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine suitable jdbc url
Action:
Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (the profiles dev are currently active).
问题排查
看了网上很多帖子,大多是说yml文件没扫描到,需要再pom文件中添加yaml文件扫描;或者是需要排除默认数据源类(@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})),这两种方法对我这里的问题解决都无效,由于我的配置文件是从nacos配置中心获取,所以我在windows上另外部署了一套一摸一样的代码,windows上的微服务测试启动成功,通过对比两边的启动日志,发现mbp上的启动日志获取配置文件的group一直是取的“DEFAULT_GROUP”这个group_id,如下图
而在windows启动日志中,该分组是我已经修改过后的“dev”,这里就是问题的关键,为什么启动的时候没有按照我配置文件中配置的“dev”分组启动,而是变成了“DEFAULT_GROUP”,导致无法从nacos上正确的group配置文件中中获取配置信息?
根据启动的环节排查,终于发现原来是在启动类中有一行配置参数,导致实际启动是按照这个配置参数的group_id去取配置文件,所以找不到对应分组的配置文件!
解决方法
修改了这个配置分组为dev后,就能正常启动了,这个问题归根结底还是取不到配置信息的缘故,但是mbp的IDEA上为什么会有这段启动参数,还是没有找到原因,姑且认为是一时手抖自己添加的,后续再有这个问题,可优先从这方面排查。