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程序连接mathematica。当我尝试这样做时,我看到异常:

JDBC::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已正确完成。

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

错误.png

我的 Mathematica 使用以下版本的JDBCand Connector/J

  • JDBC 有版本 3
  • 连接器/J 有 5.1.27

我通过执行命令(mathematica不是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"]

我附加了有关 java 版本的信息:

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)

我应该升级jdbcconnector/j还是降级mysql?也许还有另一种解决方案?

4

1 回答 1

3

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

请注意,使用 8.0.x 连接器/J 驱动程序时,类路径也从 更改com.mysql.jdbc.Drivercom.mysql.cj.jdbc.Driver.

于 2018-08-08T13:47:20.683 回答