项目从mysql 改成OceanBase后出现在的问题


这是我连接方式
刚开始设置表id 自增,但是 插入的时候会报错 id为null 就插入不进去。
查询接口还会报错

是我配置的连接有问题吗。这个查询报错也是偶现问题

1、配置示例

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001359046
2、可以直接把sql语句在ob上执行 看看是否有问题

sql 是没有问题的,就是一直报错连接错误。偶现问题。连续点就会出现问题。否则不会出现问题

麻烦提供下更完整的异常日志,另外您那边用的 mysql 驱动的版本号是多少?





使用的mysql 版本号 5.7.25-Oceanbase-v4.2.1.4

从报错来看是一个内核已知问题,具体来说是 OB 和 Mysql 返回的 OK_Packet 格式不一致,虽然 OB 的返回的格式也是符合 MySQL 官方协议标准,但是历史版本的 mysql 驱动不兼容。解决方法之一是升级 MySQL 驱动到修复了 OK_Packet 解析问题的 8.2.0 或更新版本。 https://dev.mysql.com/doc/relnotes/connector-j/en/news-8-2-0.html

感谢。确实是连接jdbc 版本驱动问题

请问下,我也遇到类似的偶发问题了,现象是程序执行对应sql偶尔报错,手动执行没问题;如果是mysql5.7迁移到oceanbase4.2社区版的话,目前驱动包是mysql-connector-java-5.1.x较低的版本,升级更换到哪个版本好些?难道必需要用mysql8的驱动吗?

MySQL驱动的话5.1驱动感觉问题会比较少,我们用MySQL8驱动出现过很多问题。用OB的话建议还是用OB的驱动,并且JDBC连接串按照官方的来设置

1 个赞

直接用MySQL8.2.0没出现问题了

请问您那边驱动换成 8.2.0.jar 后,java应用连接mysql租户时候,application.yml 的连接信息是怎么写的,我这边也遇到了用 mybatis 批量插入会报错的问题,请帮忙解答一下