Access denied for user 'root'@'localhost' (using password: YES) 解决方法
Access denied for user 'root'@'localhost' (using password: YES)
使用SpringBoot 写demo 时MySQL一直连接不上,详细错误信息如下
create connection SQLException, url: jdbc:mysql://localhost:3306/mybatisplus?useSSL=false&useUnicode=true&characterEncoding=utf-8, errorCode 1045, state 28000
配置文件信息如下
application.yml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatisplus?useSSL=false&useUnicode=true&characterEncoding=utf-8
username: root
password: 000206
数据库结构
去网上查找解决方案,都说密码错误或数据库名称不匹配,但是我反复检查后确认密码和数据库名称匹配的情况依然连接不上数据库,如下图所示,可以使用配置文件内的密码正常登录MySQL
还有人说去掉useUnicode=true
或者设置时区(MySQL8及以上必须设置时区,高版本兼容低版本,即MySQL8以下版本也可以设置时区),但是修改配置后依然无济于事,修改后的url如下所示
jdbc:mysql://localhost:3306/mybatisplus?useSSL=false&characterEncoding=utf-8&serverTimezone=GMT%2B8
还有说把localhost
改为 127.0.0.1
的,我都试了还是连接不上
后来在讨论群里咨询,有人说在密码上加个单引号,我试了试,你猜怎么着,嘿,它还就真的连上了 (°ー°〃)
但是为什么要这么做我并不清楚,希望有大佬看到后能给身为小白的我补充一下知识盲区 ヾ(•ω•`)o
我个人认为可能是密码是纯数字的原因,所以改了个非纯数字的密码测试一下
将application.yml
中的密码也改一下,而且不使用单引号将其包裹
结果正如我所料,运行一路畅通,非常 Nice (~ ̄▽ ̄)~
最后,希望能给你带来收获,还有,请知道其中原理的大佬 一定
要不吝赐教,为我指点迷津,感谢了 (๑•̀ㅂ•́)و✧