黑马头条Day1-12启动UserApplication时报错Failed to configure a DataSource ‘url‘ attribute is not specified and

视频教程:Day1-12-app端登录-功能实现

1. 错误呈现

以下的错误信息只是表象,真正导致错误的原因有很多个


APPLICATION FAILED TO START


Description:

Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class

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 (no profiles are currently active).

在这里插入图片描述

报错信息的主要意思是 url 属性没有指定,无法选择一个合适的驱动类

明明配置文件中指定了 url 属性,为什么说没有指定 url 呢,主要有两个原因:

  1. 访问 url 失败
  2. 无法读取 Nacos 配置中心上的 url 属性

2. 错误原因一:Nacos配置中心没有url属性

2.1 错误呈现

控制台给出的部分报错信息

在这里插入图片描述

Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class

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 (no profiles are currently active).

2.2 解决办法:在Nacos配置中心添加配置文件

  • Data Id:leadnews-user
  • Group:DEFAULT_GROUP

在这里插入图片描述

参考配置

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/leadnews_user?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
    username: 
    password: 
# 设置Mapper接口所对应的XML文件位置,如果你在Mapper接口中有自定义方法,需要进行该配置
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  # 设置别名包扫描路径,通过该属性可以给包中的类注册别名
  type-aliases-package: com.heima.model.user.pojos

3. 错误原因二:数据库密码中含有特殊字符

如果你的数据库密码中含有 ! # 等特殊字符,程序在解析时将会出错

3.1 错误呈现

控制台给出的部分报错信息

在这里插入图片描述

type-aliases-package: com.heima.model.user.pojos
org.yaml.snakeyaml.scanner.ScannerException: while scanning a tag
in ‘reader’, line 6, column 15:
password: !UpuSZAxG#1&2^cG
^
expected ’ ', but found ‘#’ (35)
in ‘reader’, line 6, column 24:
password: !UpuSZAxG#1&2^cG
^


在 Nacos 配置中心编辑配置文件时可以看到,如果密码中含有 ! # 等特殊字符,字符串的颜色会发生变化

在这里插入图片描述

3.2 解决办法一:用双引号将密码包裹起来

可以看到,在用双引号将密码包裹起来之后,字符串的颜色恢复正常了

在这里插入图片描述

3.3 解决办法二:修改数据库中对应用户的密码

重新修改数据库中对应用户的密码,新密码中不含 ! # 等特殊字符

4. 错误原因三:Nacos开启了权限认证

4.1 错误呈现

控制台中除了文章开头的错误信息外,还会有以下错误信息

在这里插入图片描述

2024-10-20 17:05:32.069 [main] ERROR c.a.c.n.c.NacosPropertySourceBuilder - get data from Nacos error,dataId:leadnews-user
com.alibaba.nacos.api.exception.NacosException: <h1>Whitelabel Error Page</h1>

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Sun Oct 20 17:05:32 GMT+08:00 2024
There was an unexpected error (type=Forbidden, status=403).
unknown user!


我们可以看到,控制台中有 There was an unexpected error (type=Forbidden, status=403).</div><div>unknown user!</div></body></html> 语句,与 403 状态码相关的错误一般都是与权限认证相关,后面的 unknown user 关键字也能印证我们的猜想

4.2 解决办法:在bootstrap.yml文件中添加Nacos的用户名和密码

在 bootstrap.yml 文件中添加 Nacos 的用户名和密码(如果没有额外配置,用户名和密码默认都是小写的 nacos

在这里插入图片描述

5. 其它未知错误的解决办法

如果你遇到的错误与前面提到的三种错误类型都不相同,可以先把配置先直接写在 bootstrap.yml 文件里面,而不是放在 Nacos 上

在这里插入图片描述

在控制台查看报错信息,一步步排查,确认配置信息没问题后,再将配置信息放到 Nacos 上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聂 可 以

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值