有提供完全的mysql8兼容模式吗,比如JDBC查询的metaData也与Mysql兼容

【 使用环境 】 测试环境
【 OB or 其他组件 】使用的mysql的驱动 mysql-connector-java-8.0.28.jar
【 使用版本 】4.3.3
【问题描述】
DatabaseMetaData metaData = conn.getMetaData();
System.out.println("数据库产品版本: " + metaData.getDatabaseProductVersion());
System.out.println("数据库产品名称: " + metaData.getDatabaseProductName());
System.out.println("数据库驱动版本: " + metaData.getDriverVersion());
System.out.println("主版本: " + metaData.getDatabaseMajorVersion());
System.out.println("次版本: " + metaData.getDatabaseMinorVersion());
目前返回的信息如下:比如虽然兼容mysql8的语法,但是返回的meta信息还是5.7
MySQL版本: 5.7.25-OceanBase-v4.3.3.1
数据库产品版本: 5.6.25
数据库产品名称: MySQL
数据库驱动版本: mysql-connector-java-8.0.20 (Revision: afc0a13cd3c5a0bf57eaa809ee0ee6df1fd5ac9b)
主版本: 5
次版本: 6

【期望返回】如下metaData
数据库产品版本: 8.0.37
数据库产品名称: MYSQL
数据库驱动版本: mysql-connector-java-8.0.20 (Revision: afc0a13cd3c5a0bf57eaa809ee0ee6df1fd5ac9b)
主版本: 8
次版本: 0

1 个赞

我看jdbc读取的是地方是代码写死的;应该是没法改的;
单纯为了改版本查询可以
SET GLOBAL version = ‘8.0.25-OceanBase_CE-v4.2.2.1’;
重建会话,查询版本是可以改成功的
obclient [(none)]> select version();
±-----------------------------+
| version() |
±-----------------------------+
| 8.0.25-OceanBase_CE-v4.2.2.1 |
±-----------------------------+
1 row in set (0.001 sec)

2 个赞