Jdbc mysql连接器/j不适用于java jdk 1.7.x

Jdbc mysql连接器/j不适用于java jdk 1.7.x,jdbc,database-connection,java-7,mysql-connector,jdk1.6,Jdbc,Database Connection,Java 7,Mysql Connector,Jdk1.6,网上有几个地方问过这个问题,但是没有找到解决办法,我不得不说我觉得很奇怪 我有一个使用以下代码连接到MySQL的项目: String params = "?verifyServerCertificate=false" + "&useSSL=true" + "&requireSSL=true" + "&authenticationPlugins=com.mysql.jdbc.authentica

网上有几个地方问过这个问题,但是没有找到解决办法,我不得不说我觉得很奇怪

我有一个使用以下代码连接到MySQL的项目:

    String params = "?verifyServerCertificate=false"
            + "&useSSL=true"
            + "&requireSSL=true"
            + "&authenticationPlugins=com.mysql.jdbc.authentication.MysqlClearPasswordPlugin"
            + "&defaultAuthenticationPlugin=com.mysql.jdbc.authentication.MysqlClearPasswordPlugin";

    String connectionString = "jdbc:mysql://" + host + ":"
            + port + "/dbname" + params;

    Connection connection = DriverManager.getConnection(connectionString,
            uid, pwd);
问题是它使用JDK1.6和mysql连接器Java5.1.30工作

但是,我需要升级到JDK1.7,这就是我遇到的问题

java.sql.SQLException:消息 位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1094) 在com.mysql.jdbc.MysqlIO.checkErrorPacket上(MysqlIO.java:4226) 在com.mysql.jdbc.MysqlIO.checkErrorPacket上(MysqlIO.java:4158) 在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:926)上 在com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1748)上 位于com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1288) 位于com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2508) 位于com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2541) 位于com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2323) 位于com.mysql.jdbc.ConnectionImpl(ConnectionImpl.java:832) JDBC4Connection.(JDBC4Connection.java:46) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 位于java.lang.reflect.Constructor.newInstance(Constructor.java:525) 位于com.mysql.jdbc.Util.handleNewInstance(Util.java:408) 位于com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417) 位于com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344) 位于java.sql.DriverManager.getConnection(DriverManager.java:579) 位于java.sql.DriverManager.getConnection(DriverManager.java:221) 位于com.causata.automation.api.sampleapietest.connectToDatabaseWithValidUser(sampleapietest.java:357) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:601) 位于org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68) 位于org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:107) 位于org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:88) 位于org.junit.internal.runners.MethodRoadie.runbeforesthentestthenuter(MethodRoadie.java:96) 位于org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:86) 位于org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49) 位于org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:100) 位于org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:61) 位于org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:54) 位于org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:33) 位于org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:45) 位于org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:52) 位于junit.framework.JSystemJUnit4ClassRunner.run(JSystemJUnit4ClassRunner.java:216) 位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 位于org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

我尝试使用eclipse的反编译器插件dubug代码,但没有找到多少。 在谷歌寻找解决方案时,我发现一些人说我需要使用不同的连接器版本,我也尝试过,从5.1.18-31开始使用不同的版本

我认为(不确定)以前的版本不支持正在使用的身份验证插件

试图使用Spring和数据源代码,但实际上它使用了相同的连接器。 尝试搜索不同的连接器,但我还是被身份验证插件束缚住了,有人知道使用JDK1.7的不同驱动程序支持这种身份验证吗

在JDK1.8中也尝试过,但得到了相同的错误

为什么我不能使用JDK1.7及以上版本连接到MySQL。。。从那以后就再也没有了

我会感谢你的帮助

谢谢, 埃兰