阿良
#1
【 使用环境 】 测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.2.1
【问题描述】django(版本4.2)使用MySQL模式连接OB,但是django提示需要MySQL8.0以上,查看django文档后,确认需要MySQL8以上版本。查看代码判断逻辑后,是使用select version()获取的版本号,我使用该语句从OB获取得到【5.7.25-OceanBase_CE-v4.2.2.1】,经正则后得到版本号为【5.7.25】,导致django框架下无法写入数据到OB。我的疑问是:1. 【5.7.25】是否是代表的MySQL的版本? 2.如果没有实际意义,这个版本号可以改不?比如我改成8.0,应该在哪里操作修改呢?
![image](https://ask.oceanbase.com/uploads/default/original/2X/1/10a6a12609a7b05e2dc42a1370048402ac367195.png)
写入时的异常信息:
![image](https://ask.oceanbase.com/uploads/default/original/2X/3/3e5641abc0f1262f40e5c90cc9571ddd2ceed59e.png)
django文档:
【复现路径】使用django4.2以上版本均能复现
【附件及日志】
彭浩
#2
内部做过django 3.2版本对ob的适配,是没问题的。方便用低版本的django吗?
无糖拿铁
#4
可以改,你试试改完能不能用
mysql> set global version=‘8.0.0’;
Query OK, 0 rows affected (0.03 sec)
mysql> select @@version;
±----------+
| @@version |
±----------+
| 8.0.0 |
±----------+
1 row in set (0.00 sec)
彭浩
#5
或者尝试修改改变量方式看下能否规避。
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)
阿良
#6
3.2有很多漏洞,所以需要升级。问题是,即使现在我降版本了,后续升级也是个问题了。
阿良
#8
设置版本号以后可以写入了,会不会有其他问题就只能后面看了。另外,请教下5.7.2是指的基础的mysql版本吗?
彭浩
#10
这个应该是指100%兼容mysql5.7,mysql8.0应该没有全面兼容