
JDK1.7下测试Connector_J连接MySQL8.0
JDK1.7下测试Connector/J连接MySQL8.0
客户的一些应用系统使用的JDK1.7版本,在将数据库迁移到MySQL8.0的过程中,发现有些MySQL connector/J的版本无法连接到MySQL8.0。本文描述了在Linux JDK1.7环境下,测试不同版本Connector/J的方法,也可用于为MySQL接口的国产数据库产品选择Connector/J版本。
MySQL Connector/J说明
MySQL通过MySQL Connector/J为用Java语言开发的客户端应用程序提供连接,MySQL Connector/J是一个实现Java数据库连接(JDBC) API的驱动程序。
MySQL Connector/J是一个JDBC 4型驱动程序。Type 4标志意味着驱动程序是MySQL协议的纯Java实现,不依赖于MySQL客户端库。
MySQL Connector/J有两个版本:
- Connector/J 5.1是第4类纯Java JDBC驱动程序,符合JDBC 3.0、4.0、4.1和4.2规范。它提供了与MySQL所有功能的兼容性,包括5.6、5.7和8.0。Connector/J 5.1提供了易于开发的特性,包括向驱动程序管理器自动注册、标准化的有效性检查、分类的SQLExceptions、对大量更新计数的支持、对java.time包的本地和偏移日期时间变量的支持、对JDBC-4.x XML处理的支持、对每个连接客户端信息的支持以及对NCHAR、NVARCHAR和NCLOB数据类型的支持。
- Connector/J 8.0是用于Java 8平台的第4类纯Java JDBC 4.2驱动程序。它提供了兼容MySQL 5.6、5.7和8.0的所有功能。强烈推荐MySQL连接器/J 8.0与MySQL服务器8.0、5.7和5.6一起使用。请升级到MySQL连接器/J 8.0。
Connector/J不同版本的JDBC、MySQL Server和Java的信息:
Connector/J 版本 | Driver Type | 实现的 JDBC 版本 | MySQLServer 版本 | 支持的 JRE版本 |
5.1 | 4 | 3.0, 4.0, 4.1, 4.2 | 5.6, 5.7, 8.0 | 1.5.x, 1.6.x, 1.7.x, 1.8.x |
8.0 | 4 | 4.2 | 5.6, 5.7, 8.0 | 1.8.x |
可知,要支持JRE1.7版本,需选用连接器Connector/J的版本为5.1 ,而5.1的最新版本为5.1.49 。
测试Connector/J 5.1的不同版本
安装配置jdk1.7
检查当前jdk版本
安装jdk1.7
修改JAVA_HOME
修改/etc/profile文件:
export JAVA_HOME=/usr/lib/jdk1.8.0_111
改为:
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
重新登录,检查java版本
构造测试数据
确认MySQL数据库版本
创建表及用户
编写测试用java程序
编写ShowDbinfo.java程序,用于测试连接MySQL数据库。
运行java程序测试
编译运行java程序,测试指定版本的连接器是否可以连接数据库。以版本5.1.46为例说明。
获取Connector/J
从MySQL官方https://downloads.mysql.com/archives/c-j/下载5.1.46版本的Connector/J,上传解压后,将mysql-connector-java-5.1.46.jar拷贝到ShowDbinfo.java所在目录。
编译运行测试程序
编译java源程序:
运行java程序连接数据库:
输出结果如下:
连接失败connector/J
下载测试了5.1的几个版本,结果如下表:
驱动版本 | 是否可以连接MySQL8.0 |
5.1.49 | 是 |
5.1.46 | 是 |
5.1.40 | 否 |
5.1.30 | 是 |
5.1.6 | 是 |
5.1.40无法连接MySQL8.0,报错信息如下:
本文转载自公众号:GreatSQL社区
