将mysql升级到版本8

时间:2016-12-24 23:16:20

标签: jdbc wolfram-mathematica jconnect mysql-8.0

问题:

我将mysql升级到最新版本:

127.0.0.1$ mysql -V 
mysql  Ver 14.14 Distrib 8.0.0-dmr, for Linux (x86_64) using  EditLine wrapper

现在,我无法使用mysql中的jdbc使用connector/j程序中的mathematicaJDBC::error: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long 建立联系。当我尝试这样做时,我看到异常:

mysql

调试我完成了

为了调试我在虚拟机上安装了最早的192.168.43.48$ mysql -V mysql Ver 14.14 Distrib 5.5.53, for debian-linux-gnu (x86_64) using readline 6.3

mysql

与旧JDBC的连接已正确完成。

您可以在屏幕上看到命令初始化连接和这些结果:

error.png

我的Mathematica使用以下版本的Connector/Jmathematica

  • JDBC有版本3
  • Connector / J有5.1.27

我通过执行命令获取这些信息(bash而不是JDBCDrivers["MySQL(Connector/J)"] ):

JDBCDriver["Name" -> "MySQL(Connector/J)", 
"Driver" -> "com.mysql.jdbc.Driver", "Protocol" -> "jdbc:mysql://", 
 "Version" -> 3., 
 "Description" -> 
  "MySQL using Connector/J - Version 5.1.27 - This supports all known \
MySQL server versions.", 
 "Location" -> 
  "/usr/local/Wolfram/Mathematica/10.0/SystemFiles/Links/DatabaseLink/\
DatabaseResources/mysql.m"]

给出输出:

127.0.0.1$ java -version
openjdk version "9-internal"
OpenJDK Runtime Environment (build 9-internal+0-2016-04-14-195246.buildd.src)
OpenJDK 64-Bit Server VM (build 9-internal+0-2016-04-14-195246.buildd.src, mixed mode)

我附上有关java版本的信息:

jdbc

我应该升级connector/jmysql还是降级$query = DB::table($tableName); // ...some logic... foreach ($filters as $filter) { $query->where($filter['col'], $filter['op'], $filter['val']); } // ...more logic... if (isset($limit)) { $query->limit($limit); } if (isset($columns)) { // get desired columns $records = $query->get($columns); } else { $records = $query->get(); } ?也许有另一种解决方案?

1 个答案:

答案 0 :(得分:1)

Connector / J 5.x将不会连接到MySQL 8.x数据库;您必须使用8.0.x Connector / J驱动程序。

请注意,使用8.0.x Connector / J驱动程序,类路径也从com.mysql.jdbc.Driver更改为com.mysql.cj.jdbc.Driver