Browse Source

REPORT-66916 fix:使用自定义mysql8驱动,连接失败

bugfix/KERNEL-11409-jackson
Roger.Chen 3 years ago
parent
commit
2a6aac26f6
  1. 16
      fine-druid/src/main/java/com/fr/third/alibaba/druid/util/MySqlUtils.java

16
fine-druid/src/main/java/com/fr/third/alibaba/druid/util/MySqlUtils.java

@ -386,13 +386,15 @@ public class MySqlUtils {
public static long getLastPacketReceivedTimeMs(Connection conn) throws SQLException {
if (!class_connectionImpl_Error) {
if (conn == null) {
return -1;
}
try {
class_connectionImpl = Utils.loadClass("com.mysql.jdbc.MySQLConnection");
if (class_connectionImpl == null) {
class_connectionImpl = Utils.loadClass("com.mysql.cj.MysqlConnection");
if (class_connectionImpl != null) {
mysqlJdbcVersion6 = true;
}
//REPORT-66916 这里之前获取到的是lib下的mysql5实现,而不是自定义mysql8驱动的实现
String className = conn.getClass().getName();
class_connectionImpl = Utils.loadClass(className);
if (className.equals("com.mysql.cj.MysqlConnection")) {
mysqlJdbcVersion6 = true;
}
} catch (Throwable error) {
class_connectionImpl_Error = true;
@ -431,7 +433,7 @@ public class MySqlUtils {
return System.currentTimeMillis()
- ((Long)
getIdleFor.invoke(connImpl))
getIdleFor.invoke(connImpl))
.longValue();
} catch (Exception e) {
throw new SQLException("getIdleFor error", e);

Loading…
Cancel
Save