今天在配置数据库连接时报了个错,在网上搜了好久,直到后来知道原因后被自己蠢笑了。。。

Access denied for user 'xxx'@'localhost' (using password: YES) 

意思就是:无权限使用root账号本地登录MySQL

 在数据库中测试的连接是正确的,密码也测试过无误

错误原因:

手误将datasource下的属性username写成了name,改回来就好了。以下是正确的写法

 application.yml配置文件(本人在application.properties没有配置数据源信息。如果在properties、yml都写了同样的相关配置,若properties文件配置信息有误,由于spring boot优先匹配properties文件的数据信息,所以即使你在yml配置文件下写的是正确数据,还是会报错,二者选其一写配置信息就好)

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&severTimezone=UTC
    username: root
    password: 123

若忘记了Mysql数据库密码,在mysql测试连接也失败了, 可以参考这或者再找找其他文章吧

MySQL Access denied for user ‘root‘@‘localhost‘ (using password: YES/NO) 的原因以及解决方案_access denied for user root@localhost_晚风_END的博客-CSDN博客https://blog.csdn.net/alwaysbefine/article/details/109224657

 ----------------------------------------------(完,以下仅供个人学习)----------------------------------------------

spring.datasource.username与 spring.datasource.name含义是不一样的:

spring.datasource.name        是给数据源取名, 默认 testdb

spring.datasource.username        是数据库的登录用户名

有的也会写成spring.datasource.data-username,这个也是不对的

spring.datasource.data-username        是用于执行 DML 脚本的数据库的用户名(如果不同)

需要了解更多spring.datasource下的属性,请参考以下大佬的文章,我也是参考这儿的

Springboot2配置之 spring.datasource_spring_datasource_platform_kfepiza的博客-CSDN博客https://blog.csdn.net/kfepiza/article/details/115310642

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐