java.sql.SQLException:拒绝用户“root"@“localhost"的访问(使用密码:YES) [英] java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

查看:69
本文介绍了java.sql.SQLException:拒绝用户“root"@“localhost"的访问(使用密码:YES)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下代码:

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

getConnection() 上抛出这个异常:

java.sql.SQLException: 用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)在 com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694)在 com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244)在 com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2397)在 com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2430)在 com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2215)在 com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:813)在 com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)在 sun.reflect.NativeConstructorAccessorImpl.newInstance(来源不明)在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源)在 java.lang.reflect.Constructor.newInstance(Unknown Source)在 com.mysql.jdbc.Util.handleNewInstance(Util.java:411)在 com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)在 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)在 java.sql.DriverManager.getConnection(Unknown Source)在 java.sql.DriverManager.getConnection(Unknown Source)在 db.Database.(Database.java:91)在 db.Main.main(Main.java:10)

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

 public static void main(String[] args) 抛出 ClassNotFoundException、ServletException、SQLException{尝试{Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword");语句 s = (Statement) conn.createStatement();int result = s.executeUpdate("创建数据库数据库名");}捕获(异常 e){e.printStackTrace();}}

产生:

java.sql.SQLException: 用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)在 com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694)在 com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244)在 com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2397)在 com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2430)在 com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2215)在 com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:813)在 com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)在 sun.reflect.NativeConstructorAccessorImpl.newInstance(来源不明)在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源)在 java.lang.reflect.Constructor.newInstance(Unknown Source)在 com.mysql.jdbc.Util.handleNewInstance(Util.java:411)在 com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)在 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)在 java.sql.DriverManager.getConnection(Unknown Source)在 java.sql.DriverManager.getConnection(Unknown Source)在 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 结果 = ps.executeUpdate();

这是一个相同的场景.>

The following code:

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

Throws this exception on 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)

How is this caused and how can I solve it?

EDIT:

    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();
        }
}

Produces :

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)

解决方案

As you are creating a database from scratch, you could use:

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

Here is an identical scenario.

这篇关于java.sql.SQLException:拒绝用户“root"@“localhost"的访问(使用密码:YES)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆