diff --git a/pom.xml b/pom.xml
index 8fe77b64d6..dcef558cf2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -475,7 +475,7 @@
mysql
mysql-connector-java
- 6.0.3
+ 5.1.39
provided
diff --git a/src/main/java/com/alibaba/druid/util/JdbcConstants.java b/src/main/java/com/alibaba/druid/util/JdbcConstants.java
index 7c1ee0b274..6c6ccf7178 100644
--- a/src/main/java/com/alibaba/druid/util/JdbcConstants.java
+++ b/src/main/java/com/alibaba/druid/util/JdbcConstants.java
@@ -45,6 +45,7 @@ public interface JdbcConstants {
public static final String MYSQL = "mysql";
public static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver";
+ public static final String MYSQL_DRIVER_6 = "com.mysql.cj.jdbc.Driver";
public static final String MARIADB = "mariadb";
public static final String MARIADB_DRIVER = "org.mariadb.jdbc.Driver";
diff --git a/src/main/java/com/alibaba/druid/util/JdbcUtils.java b/src/main/java/com/alibaba/druid/util/JdbcUtils.java
index 1b133a5feb..84517fd02e 100644
--- a/src/main/java/com/alibaba/druid/util/JdbcUtils.java
+++ b/src/main/java/com/alibaba/druid/util/JdbcUtils.java
@@ -50,6 +50,8 @@ public final class JdbcUtils implements JdbcConstants {
private static final Properties DRIVER_URL_MAPPING = new Properties();
+ private static Boolean mysql_driver_version_6 = null;
+
static {
try {
ClassLoader ctxClassLoader = Thread.currentThread().getContextClassLoader();
@@ -364,7 +366,15 @@ public final class JdbcUtils implements JdbcConstants {
if (rawUrl.startsWith("jdbc:derby:")) {
return "org.apache.derby.jdbc.EmbeddedDriver";
} else if (rawUrl.startsWith("jdbc:mysql:")) {
- return MYSQL_DRIVER;
+ if (mysql_driver_version_6 == null) {
+ mysql_driver_version_6 = Utils.loadClass("com.mysql.cj.jdbc.Driver") != null;
+ }
+
+ if (mysql_driver_version_6) {
+ return MYSQL_DRIVER_6;
+ } else {
+ return MYSQL_DRIVER;
+ }
} else if (rawUrl.startsWith("jdbc:log4jdbc:")) {
return LOG4JDBC_DRIVER;
} else if (rawUrl.startsWith("jdbc:mariadb:")) {