Bug #96791 Not able to connect to mysql DB using the latest mysql-connector-java-8.0.17
Submitted: 9 Sep 2019 10:20 Modified: 13 Sep 2019 10:01
Reporter: srinivas venumuddala Email Updates:
Status: Closed Impact on me:
None 
Category:Connector / J Severity:S1 (Critical)
Version: OS:Any
Assigned to: CPU Architecture:Any

[9 Sep 2019 10:20] srinivas venumuddala
Description:
I have an application which connects to the remote mysql server installed in ubuntu 18.0 version /usr/sbin/mysqld  Ver 8.0.17 for Linux on x86_64 (MySQL Community Server - GPL).
My application is currently using the mysql-connector-java-8.0.17 and mssql-jdbc-6.4.0.jre7.jar to connect to the remote mysql server.

When i'm connecting to the remote server using cli i don't have any issue, but when i use the application to connect i'm getting the following error continuously ans seriously blocking me!!

2019-09-09 09:35:16,052 [DBPinger-20] - DB DriverManager.getConnection failed
2019-09-09 09:35:16,052 [DBPinger-20] - SQL Exception:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
        at sun.reflect.GeneratedConstructorAccessor7.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.Util.getInstance(Util.java:386)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2570)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2306)
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:839)
        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)
        at sun.reflect.GeneratedConstructorAccessor3.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:421)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:350)
        at java.sql.DriverManager.getConnection(DriverManager.java:571)
        at java.sql.DriverManager.getConnection(DriverManager.java:215)
        at com.f5.eav.DB_Pinger.db_Connect(DBDaemon.java:1528)
        at com.f5.eav.DB_Pinger.db_Ping(DBDaemon.java:1436)
        at com.f5.eav.MonitorWorker.run(DBDaemon.java:777)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException

How to repeat:
My application would like this 
private final String URL= "jdbc:mysql://127.0.0.1:3306/mysql";
private final String DB_USERNAME = "user3";
private final String DB_PASSWORD = "user3";

public void connectAndInsertToDB() {
    try {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
    } catch (Exception e) {
        System.out.println("JAVA: Class.forName() error");
        e.printStackTrace();
    }
    try {

        conn = DriverManager.getConnection(URL, DB_USERNAME, DB_PASSWORD);
    } catch (SQLException e) {
        System.out.println("Error in initializing a connection to MYSQL DB");
        e.printStackTrace();

    }
}
[13 Sep 2019 7:59] Alexander Soklakov
Hi Srinivas,

The stack trace doesn't match mysql-connector-java-8.0.17 code, it looks like some old version of Connector/J 5.1. Please ensure you don't have c/J 5.1 in your classpath. In case you need both you could try different driver class for c/J 8.0 - com.mysql.cj.jdbc.Driver.
[13 Sep 2019 10:01] srinivas venumuddala
Thanks, after adding the correct classpath to the updated version the issue got resolved.