Browse Source

REPORT-67030 fix: mysql数据连接无法正常连接

final/11.0
Roger.Chen 3 years ago
parent
commit
b8ac15b2a1
  1. 15
      fine-druid/src/main/java/com/fr/third/alibaba/druid/util/MySqlUtils.java

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

@ -386,16 +386,15 @@ public class MySqlUtils {
public static long getLastPacketReceivedTimeMs(Connection conn) throws SQLException {
if (!class_connectionImpl_Error) {
if (conn == null) {
return -1;
}
try {
//REPORT-66916 这里之前获取到的是lib下的mysql5实现,而不是自定义mysql8驱动的实现
String className = conn.getClass().getName();
class_connectionImpl = Utils.loadClass(className);
if (className.equals("com.mysql.cj.MysqlConnection")) {
mysqlJdbcVersion6 = false;
class_connectionImpl = Utils.loadClass("com.mysql.jdbc.MySQLConnection");
if (class_connectionImpl == null || class_connectionImpl.getClassLoader() != conn.getClass().getClassLoader()) {
class_connectionImpl = Utils.loadClass("com.mysql.cj.MysqlConnection");
if (class_connectionImpl != null) {
mysqlJdbcVersion6 = true;
}
}
} catch (Throwable error) {
class_connectionImpl_Error = true;
}
@ -412,7 +411,7 @@ public class MySqlUtils {
return -1;
}
if (getIdleFor == null && !getIdleForError) {
if (!getIdleForError) {
try {
getIdleFor = classJdbc.getMethod("getIdleFor");
getIdleFor.setAccessible(true);

Loading…
Cancel
Save