# `SQLException`：用户`root@localhost`的访问被拒绝

> 原文： [https://howtodoinjava.com/sql/sqlexception-access-denied-for-user-rootlocalhost-after-re-installation-of-mysql-server/](https://howtodoinjava.com/sql/sqlexception-access-denied-for-user-rootlocalhost-after-re-installation-of-mysql-server/)

重新安装 MySQL 服务器后，您是否曾经遇到过用户拒绝访问的问题或任何与登录有关的问题。 我遇到了这个问题，当我用 Google 搜索它时，我看到许多其他人也经常遭受这个问题的困扰。 在这篇文章中，我建议您尝试一下，它可以在 95% 的情况下解决此问题。

## 访问原因被拒绝错误

用户“`root`”问题的访问被拒绝错误通常发生在您卸载并安装新版本甚至旧版本时。 问题在于由 mysql 卸载程序向导完成的不完整清理。 因此，解决方案也很简单，手动清除剩余的垃圾。

您的异常将如下所示：

```java

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`[（参见此处）](https://dev.mysql.com/doc/refman/5.1/en/windows-installation-layout.html "windows-installation-layout")

该目录包含临时文件和**旧 DB 数据，包括您在先前安装中使用的最新登录凭据**。 因此，要解决此问题：

1.  卸载 MYSQL 服务器
2.  从上方文件夹中删除所有内容
3.  安装新的 MySQL 服务器

您应该可以在服务器实例中登录。

学习愉快！