当前位置:   article > 正文

mysql获取数据库账号密码报错errorCode 1045, state 28000——常见5种解决办法

errorcode 1045, state 28000

本地写了个一个项目后想上传到阿里云服务器(Windows)中,mysql+tomcat+jdk都已经配置好了,但就在项目运行时报错,显示如下

create connection error, url: jdbc:mysql://127.0.0.1:3306/ssm?useUnicode=true&characterEncoding=utf-8, errorCode 1045, state 28000 java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES) ...

因为控制台显示  user 'root '@'localhost' (using password: YES) ,说明jdbc配置文件不存在问题,问题在于用户名或密码上。

刚开始查了几篇博客,下面将各位博主的博文建议汇总到一起,希望对你有所帮助。

1.username误写做name或添加多余的字符

  1. spring:
  2. datasource:
  3. data-username: root
  4. data-password: '123456'
  5. url: "jdbc:mysql://localhost:3306/jd?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8"
  6. driver-class-name: com.mysql.cj.jdbc.Driver

上面的datasource的配置中 使用了data-password、data-username导致了一直循环报错;只要将其改为password和username就可以了 

  1. spring:
  2. datasource:
  3. username: root
  4. password: '123456'
  5. url: "jdbc:mysql://localhost:3306/jd?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8"
  6. driver-class-name: com.mysql.cj.jdbc.Driver

2.连接配置中出现空格

密码帐号都是对的,错在配置文件(db.properities或者spring-mvc.xml)里出现了空格。

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://127.0.0.1:3306/ssm?useUnicode=true&characterEncoding=utf-8
  3. jdbc.username=root
  4. jdbc.password=root

Debug时,无意中看待到

Access denied for user 'root '@'localhost' (using password: YES),发现配置文件"jdbc.username=root "在root后面多了两个空格,删掉重启一切正常。但是不明白的是com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection方法能过滤空格获取账号密码,但最后一直死循环报错。

总结下,不管druid能否过滤空格,过滤后怎么处理都要保证字段定义正确。

3.localhost密码密文改明码

打开Navicat(或者其他的数据库管理工具均可)检测数据库的表是否 有叫 user 的(通常在mysql的数据库中) 如果有尽量改名 

在这里插入图片描述

打开这张User表

在这里插入图片描述

把这个密码改成明文root 或者你自己任意的密码 再次重启项目即可

4.密码带引号或忘记带引号

(是否带引号取决于配置文件和spring版本)

  1. spring:(springboot版本2.1.4)
  2. datasource:
  3. url: jdbc:mysql://192.168.241.200/boot
  4. username: root
  5. password: '0000'
  6. driver-class-name: com.mysql.jdbc.Driver
  7. type: com.alibaba.druid.pool.DruidDataSource

此时若忘记扩引号,则会显示errorCode 1045, state 28000的bug,这一点不易发现。

5.修改密码

查询了上述几个方法之后,依次实验之后发现依然不能解决问题,仍然显示errorCode 1045, state 28000的错误,而且是循环显示。

无奈,没有头绪,从最开始配置mysql慢慢往回倒。

最后发现将localhost的密码由123456改为root,其实可以说是第四个解决办法给予的提示,不过幸亏到最后解决了,便不再报上述error。

 

Bug:

  1. 循环报错
  2. ERROR 127784 — [reate-700837405] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql://localhost:3306/jd?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8, errorCode 1045, state 28000
  3. java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: NO)
  4. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.19.jar:8.0.19]
  5. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.19.jar:8.0.19]
  6. at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.19.jar:8.0.19]
  7. at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) ~[mysql-connector-java-8.0.19.jar:8.0.19]
  8. at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) ~[mysql-connector-java-8.0.19.jar:8.0.19]
  9. at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) ~[mysql-connector-java-8.0.19.jar:8.0.19]
  10. at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197) ~[mysql-connector-java-8.0.19.jar:8.0.19]
  11. at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:156) ~[druid-1.1.21.jar:1.1.21]
  12. at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218) ~[druid-1.1.21.jar:1.1.21]
  13. at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) ~[druid-1.1.21.jar:1.1.21]
  14. at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1646) ~[druid-1.1.21.jar:1.1.21]
  15. at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710) ~[druid-1.1.21.jar:1.1.21]
  16. at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2753) ~[druid-1.1.21.jar:1.1.21]

当然希望大佬看到这篇文章如有相同的问题请留下您的高见!

 

欢迎关注公众号:单身程序猿

自己做的公众号,希望收获你的关注~

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号