SpringBoot连接mysql密码正确但SQLException: Access denied for user 'root'@'localhost' (using password: YES)

您所在的位置:网站首页 解压文件时密码没错但是说错了 SpringBoot连接mysql密码正确但SQLException: Access denied for user 'root'@'localhost' (using password: YES)

SpringBoot连接mysql密码正确但SQLException: Access denied for user 'root'@'localhost' (using password: YES)

2023-11-23 13:19| 来源: 网络整理| 查看: 265

SpringBoot mysql连接问题

在application.yaml文件中设置datasource配置如下,此时不加双引号,执行数据库连接,会出现异常java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)。但是输入的密码的确是正确的,是数据库连接的密码,但在SpringBoot工程使用mysql连接时却报错。

解决办法很简单,输入的密码加上双引号即可。以字符串形式输入。

调试工程可见,前缀为spring.datasource的配置都会在SpringBoot启动是自动装载到下面DataSourceProperties类中,接下来会由org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration、org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration等类进行调用,完成数据源的自动配置。

在这里插入图片描述

下面将断点设置为DataSourceProperties类中的setPassword方法,如下图,debug运行,可以看到配置在yaml文件中的0101在setPassword方法中变成了65。那将yaml配置文件中的密码改成123456后呢,debug运行,可以看到如下第四个截图,123456没有改变,密码还是123456,但当密码是以0开头的时候,就会被修改。

在这里插入图片描述 密码改变:(yaml配置文件中为0101,DataSourceProperties属性类中为65) 在这里插入图片描述 在这里插入图片描述 密码不变:(yaml配置文件中为123456,DataSourceProperties属性类中为123456) 在这里插入图片描述

当我们不加双引号输入,输入的值会被转换为其他类型,如下两图就被转换为Integer和Double,所以在yaml文件中密码选项需要加上双引号。而在properties中则不会出现这个问题。

在这里插入图片描述

在这里插入图片描述

总结:

在yaml配置文件中配置mysql密码是加上双引号。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3