使用mycat对sqlserver数据库的表进行分库分表测试,安装完成后,Navicat可以连接mycat并且可以正常操作表,在使用java jdbc的方式连接mycat则报异常,异常信息如下:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.util.NoSuchElementException
STACKTRACE:
java.util.NoSuchElementException
at java.util.TreeMap.key(TreeMap.java:1323)
at java.util.TreeMap.lastKey(TreeMap.java:297)
at com.mysql.jdbc.Connection.buildCollationMapping(Connection.java:1686)
at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:4033)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2762)
at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at zhuge.crawler.database.DataBases_Mysql.getConn(DataBases_Mysql.java:49)
at zhuge.crawler.database.DataBases_Mysql.main(DataBases_Mysql.java:28)
** END NESTED EXCEPTION **
Last packet sent to the server was 2 ms ago.
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2820)
at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at zhuge.crawler.database.DataBases_Mysql.getConn(DataBases_Mysql.java:49)
at zhuge.crawler.database.DataBases_Mysql.main(DataBases_Mysql.java:28)
经过查询测试,问题是数据库驱动包版本问题,开始使用的是
mysql-connector-java-5.0.7-bin.jar
换成
mysql-connector-java-5.1.31-bin.jar
后问题解决