Jdbc mysql连接器/j不适用于java jdk 1.7.x
网上有几个地方问过这个问题,但是没有找到解决办法,我不得不说我觉得很奇怪 我有一个使用以下代码连接到MySQL的项目: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
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。。。从那以后就再也没有了
我会感谢你的帮助
谢谢,
埃兰