重新安装 MySQL 服务器后,您是否曾经遇到过用户拒绝访问的问题或任何与登录有关的问题。 我遇到了这个问题,当我用 Google 搜索它时,我看到许多其他人也经常遭受这个问题的困扰。 在这篇文章中,我建议您尝试一下,它可以在 95% 的情况下解决此问题。
访问被拒绝错误的原因
用户“root
”问题的访问被拒绝错误通常发生在您卸载并安装新版本甚至旧版本时。 问题在于由 mysql 卸载程序向导完成的不完整清理。 因此,解决方案也很简单,手动清除剩余的垃圾。
您的异常将如下所示:
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:910)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3923)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1273)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031)
at com.mysql.jdbc.ConnectionImpl.init(ConnectionImpl.java:718)
at com.mysql.jdbc.JDBC4Connection.init(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
... 5 more
解决方案
解决访问被拒绝错误的方法是从以下位置删除旧数据文件夹。
C:/Documents and Settings/All Users/Application Data/MySQL
(参见此处)
该目录包含临时文件和旧 DB 数据,包括您在先前安装中使用的最新登录凭据。 因此,要解决此问题:
- 卸载 MYSQL 服务器
- 从上方文件夹中删除所有内容
- 安装新的 MySQL 服务器
您应该可以在服务器实例中登录。
学习愉快!