当前位置: 首页 > 面试题库 >

java.sql.SQLException:用户'root'@'localhost'的访问被拒绝(使用密码:是)

阳航
2023-03-14
问题内容

如下代码:

Class.forName("com.mysql.jdbc.Driver");
Connection m_connection = DriverManager.getConnection("jdbc:mysql://localhost","root","root");

在上引发此异常getConnection()

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2397)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2430)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2215)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    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:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at db.Database.<init>(Database.java:91)
    at db.Main.main(Main.java:10)

这是怎么引起的,我该如何解决?

编辑:

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

        try
        {
            Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword"); 
            Statement   s = (Statement) conn.createStatement();
            int result = s.executeUpdate("CREATE DATABASE databasename");
        }


        catch ( Exception e)
        {
            e.printStackTrace();
        }
}

产生:

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2397)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2430)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2215)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    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:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at db.Main.main(Main.java:19)

问题答案:

从头开始创建数据库时,可以使用:

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword"); 
PreparedStatement ps = connection.prepareStatement("CREATE DATABASE databasename");
int result = ps.executeUpdate();

这是一个相同的场景。



 类似资料:
  • 问题内容: 我是MySQL的新手,我想在Windows桌面上运行WordPress,它需要MySQL。 我安装了Microsoft提供的所有内容。我从来没有为MySQL设置过root密码,在安装WordPress的最后一步中,它要求输入MySQL服务器密码。 root的默认密码是多少(如果有的话)以及如何更改它? 我试过了: 但是它显示了我: 在此之后,我尝试: 但是,它要求输入我没有的密码。 更

  • 问题内容: 这似乎是多余的,但我无法找到正确的解决方案。 我无法使用mysql控制台登录到mysql。它要求输入密码,但不知道我实际输入的内容(是否可以获取或更改密码?)这是我的config.inc的外观。 当我尝试打开phpmyadmin时,出现此错误(#1045-用户’root’@’localhost’的访问被拒绝(使用密码:是) 我试图卸载(加上已删除所有相关文件)WAMP并重新安装。它也无

  • 因此,当我尝试从Java代码连接到MySQL数据库时,我收到错误的访问被拒绝。我所能找到的一切都没有解决问题,代码是非常基本的。我以前在项目中用过,在很多教程中都发现它是那样的。所以首先相关代码: 注意:我可以很好地登录到MySQL workbench中的DB中,并在那里做所有的事情,从创建/更改表到插入等等。 那么我做了什么来解决这个问题:它让我想知道为什么它没有声明哪个用户被拒绝了注意它声明“

  • 我正试图将一个实时WordPress站点复制到我的本地服务器上。我通过MAMP从现场站点导入数据库,在尝试连接到phpMyAdmin时收到了一条错误消息: 我在这一点上被难住了。有人能帮忙吗?

  • 问题内容: 我正在尝试从数据库中获取记录。但我正面临拒绝访问的问题。我尝试了在堆栈溢出中提到的其他解决方案,例如向用户授予特权。 访问数据库的代码: 错误的堆栈跟踪: 在这种情况下可能是什么问题。我尝试创建一个新的数据库,但是也没有用。 问题答案: 问题是授予表根用户的权限。’root’@’%’没有任何权限。.就像我以前用作连接地址一样,因此它给出了拒绝访问错误.. 是IP地址的通配符。所以mys

  • 问题内容: 我试图在服务器上部署Web应用程序,但出现此mysql数据库异常 我试图使用所有的数据库操作从命令提示符处访问数据库。 有什么错误 问题答案: 您需要授予从本地主机对root的访问权限。查看此 ubuntu帮助