异常:拒绝用户‘root’@‘localhost’的访问(使用密码:yes)(没有可用的解决方案正在运行)

b09cbbtk  于 2022-09-20  发布在  其他
关注(0)|答案(3)|浏览(149)

我正在尝试在Eclipse IDEUbuntu 20.04OS中使用Java和MySQL创建JDBC应用程序。

我在连接到数据库时遇到一个非常常见的错误:“java.sql.SQLException:拒绝访问用户‘根’@‘本地主机’(使用密码:yes)”,我尝试了堆栈溢出答案、YouTube视频、文章等所有可能的解决方案,但似乎什么都不起作用

错误:

我的Java代码:

package jdbcDemo;
import java.sql.*;

public class jdbcConnect {

    public static void main(String[] args) throws SQLException, ClassNotFoundException {

        Class.forName("com.mysql.cj.jdbc.Driver");

        String url = "jdbc:mysql://localhost:3306/jdbcDemo";
        String user = "root";
        String pswd = "1234";

        Connection con = DriverManager.getConnection(url, user, pswd);

        if(con == null) {
            System.out.println("Connection not established");
        }
        else {
            System.out.println("Connection established");
        }
    }

}

我的数据库用户:

数据库信息:

连接详情(MySQL工作台截图):

我正在尝试通过密码为**“1234”、插件为“MySQL_Native_Password”的用户“根用户”访问数据库。我正在尝试连接有学生表的jdbcDemo**数据库。

我可以通过CLI和工作台使用相同的用户和密码成功访问和操作数据库,但在JDBC中一次又一次地遇到相同的错误。

我到目前为止一直尝试的一些解决方案都不起作用:

  • 创建具有所有权限的新用户
  • 正在重新安装MySQL服务器
  • 通过MySQL工作台创建数据库
  • 更换用户插件
  • 尝试了所有不同的方法来写入URL
  • 不同类型的连接(TCI/IP、本地套接字/管道)

所有的解决方案要么是过时的、不起作用的,要么是专门针对Windows操作系统的。

请在Ubuntu 20.04中建议一些解决方案来解决这个问题,或者建议不同的替代方案来完成这个任务(远程数据库等)。

提前感谢!

3ks5zfa0

3ks5zfa01#

试着这样做

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'127.0.0.1';
ifmq2ha2

ifmq2ha22#

执行以下SQL语句:

update mysql.user set host = '%' where user = 'root' and host = 'localhost';
flush privileges;

然后再试一次。在类似的情况下,这对我来说很管用。祝好运!

wsxa1bj1

wsxa1bj13#

如果您有其他正在运行的应用程序可能正在使用端口8080,请在Application.Properties中添加以下语句:server.port = 8034。这帮助我解决了这个问题,我花了几个小时才找到这个解决方案。希望它能帮助一些人。

相关问题