我收到一个SQLInvalidAuthorizationSpecException,带有“拒绝对用户'someuser'@'localhost'的访问(使用密码:否”]
mysql = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/somedb/",
"someuser",
"somepassword"
);
如您所见,确实已指定了密码,但是驱动程序认为不应使用该密码。我究竟做错了什么?我100%确保凭据正确。
我也尝试过在连接字符串中指定所有内容,如下所示:
mysql = DriverManager.getConnection("jdbc:mysql://localhost:3306/somedb?user=someuser&password=somepassword");
无济于事。
MySQL社区版本8.0.17
mysql-connector-java版本8.0.19
在您的MySQL工作台(或命令行)中运行:ALTER USER 'someuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'somepassword'
使用此连接字符串
mysql = DriverManager.getConnection("jdbc:mysql://localhost:3306/somedb","someuser","somepassword");
似乎与用户有关,但是如果提供了完整的错误消息,将会更加清楚。