• 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 (~ ̄▽ ̄)~

    最后,希望能给你带来收获,还有,请知道其中原理的大佬 一定 要不吝赐教,为我指点迷津,感谢了 (๑•̀ㅂ•́)و✧

  • 相关阅读:
    logback不输出日志消息,且SLF4J绑定源错误
    solr6.4.1 搜索引擎(1)启动eclipse启动
    centos7网络连接
    OutOfMemoryError异常java内存泄漏(Memory Leak)和内存溢出(Memory Overflow)
    centos7软件安装redis3.2
    centos7软件安装mysql5.7
    solr6.4.1搜索引擎(5)使用zookeeper3.4.9分布式集群
    mysql优化数据库优化、SQL优化
    solr6.4.1搜索引擎(4)tomcat重启后数据加载缓慢或丢失
    centos7软件安装jdk1.8
  • 原文地址:https://www.cnblogs.com/an-shiguang/p/14628623.html
Copyright © 2020-2023  润新知