1

the following code

public void getConnection(String user, String password, String db) {
    try {
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    String url = "jdbc:mysql://localhost:3306/" + db; 
    try {
        DriverManager.getConnection(url, user, password);
        connection.createStatement();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

Throws this exception on:

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:873)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1710)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2194)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2225)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2024)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:779)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)

but I can use Terminal open connect MySQL sudo /usr/local/mysql/bin/mysql -uroot -pXXX, and use MySQLWorkbench IDE connect MySQL.

MySQL Server version: 5.6.36 MySQL Community Server (GPL). MySQL Connect lib is mysql-connector-java-5.1.42-bin.jar

How is this caused and how can I solve it?

Chars Davy
  • 1,553
  • 3
  • 14
  • 14
  • see http://stackoverflow.com/a/15707789/2310289 – Scary Wombat Jun 27 '17 at 02:43
  • Does it work if you replace `localhost` with `127.0.0.1` in your connection string? – Asaph Jun 27 '17 at 02:44
  • I use the stackoverflow.com/a/15707789/2310289 method, but now has a new error "SELECT command denied to user 'online'@'localhost' for table 'ol_user'" . How can I do?Please tell me – Chars Davy Jun 27 '17 at 03:01

0 Answers0