【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5.2
【遇到的问题:问题现象及影响】
背景:
目前有一套tidb,由最开始v3.0—>v4.0—>v5.1—>v6.5升级而来
所以new_collation_enabled的值一直为False,new_collations_enabled_on_first_bootstrap的值从v6.5后变为True,但是show collation看到的却只有utf8mb4_bin,怎么才能支持多种Collation?
update mysql.tidb set new_collation_enabled=‘True’ where VARIABLE_NAME=‘new_collation_enabled’;这样可以吗?
1 个赞
不行,这个参数修改不了,想改只能重建集群
1 个赞
字符集跟排序规则都是集群初始化的时候创建的。如果想要用新的排序规则,新部署高版本的,然后导入进去。
1 个赞
升级版本也不行吗?
1 个赞
升级版本是不是也不行
1 个赞
是的,升级的时候不会进行初始化,所以排序规则还是用的之前的版本的。
先把数据导出,再重建集群导入吧。光升级是不行的。
集群比较大,导出再导入一遍太耗时了。
升级版本时 拓扑文件 new_collation_enabled 配置ture 才会生效
配置为true,升级后就可以了吗
重新初始化了
不能,new_collation_enabled只能初始化的时候设置
这样应该也不行吧,必须是集群初始化的时候才行。
new_collations_enabled_on_first_bootstrap这个参数是在集群第一次初始化的时候设置的,老版本默认是false,就是默认大小写敏感不支持修改表的collation 排序
新版本new_collations_enabled_on_first_bootstrap是默认true,老集群只能单独对表设置排序规则。
我之前遇到过类似问题
1 个赞
目前现状是mysql.tidb 表查询结果和 new_collations_enabled_on_first_bootstrap 的值不同,
这种情况下,update mysql.tidb set new_collation_enabled=‘True’ where VARIABLE_NAME=‘new_collation_enabled’;修改下可以吗
这个update可以执行成功,但是实际无效。
new_collation_enabled的设置关系到底层tikv数据的编码,需要重建集群重新导数据。
数据库和配置文件里都可以修改,但是不会生效的。
之前5升级6的时候 拓扑文件 加上 升级 就可以。
没有用的,就算显示改了,也没有改的