2

我不断得到:

线程“AWT-EventQueue-0”本地异常堆栈中的异常:异常 [TOPLINK-4002](Oracle TopLink Essentials - 2.0.1(Build b09d-fcs (12/06/2007))):oracle.toplink.essentials.exceptions .DatabaseException 内部异常:java.sql.SQLException:用户'root'@'localhost'的访问被拒绝(使用密码:是)

但是我的项目代码连接信息和 MySQL 数据库具有相同的信息 - 因此我提供了正确的登录信息。为什么一直说我的密码错误。我在本地主机上,我的用户名是 root 并且没有密码。

这是我使用的项目变量的代码:

static final String host = "jdbc:mysql://localhost:3306/myDb";
    static final String uName = "root";
    static final String uPass = "";
    static final String query = "SELECT * FROM customers";
...
    Connection con = DriverManager.getConnection( host, uName, uPass );
4

4 回答 4

1

从您的评论中我可以看到我认为您在连接到 localhost 时是从套接字连接的(提供 localhost 时 mysql 客户端的默认行为)。

尝试以下操作:

CREATE USER 'root'@'localhost IDENTIFIED BY "";
GRANT ALL PRIVILEGES to 'root'@'localhost';
FLUSH PRIVILEGES;

并告诉我们您现在是否可以连接。请记住,您现在拥有一个密码为空且具有所有权限的 root 帐户。

于 2012-04-03T15:43:58.853 回答
1

当您有空白密码时会出现问题。
像这样改变它:

cmd
mysqladmin -u root -p password "newpassword"

然后测试:
mysql -u root -p

于 2012-04-09T21:02:44.527 回答
1

是否为 localhost 设置了 root 密码?已经有一段时间了,但 localhost 并不总是与 127.0.0.1 相同,并且 root 的密码可能没有 localhost 作为默认关联主机。

于 2012-04-03T15:07:23.177 回答
1

当来自本地主机时,您可能无权访问数据库。

尝试使用 mysql 命令行工具等外部工具通过网络层连接到数据库。

于 2012-04-03T15:07:54.440 回答