6.0以下升级到6.0以上版本问题

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5.5
【复现路径】升级
【遇到的问题:问题现象及影响】

老集群是从5.1.0升级到6.5.5的,新集群是新部署的v6.5.5。
备份还原的时候报错 new_collations_enabled_on_first_bootstrap 不匹配,这个报错理解,是6.0把默认值改了,新的集群的默认值是true。
但是检查老集群的系统参数,也是true。


这个参数没有改过,正常来说老集群应该是false。并且这个参数只有在初始化时才会生效。

这里就有疑问,老集群现在实际是true还是false?

从 4.0 版本之前的 TiDB 集群升级到 4.0 或更高版本时,由于集群已经初始化过,该参数无论如何配置,都作为 false 处理。

SELECT * FROM mysql.tidb WHERE VARIABLE_NAME = ‘new_collation_enabled’; 看下
或者直接验证下

对的文档是这么写的

:thinking:可我这个是从5.1升级到6.5呀

可我这是v6.5.5的版本

我现在理解的是,参数被强制改成true了,但是没有生效。

你的意思是升级过程中,这个参数自动由false变成true了?本来5.5版本默认这个参数是false的?

我看官网是这么写的,现在配置相同了,加个参数能还原么

对,虽然改了,但是没有生效的,这个只在初始化时生效

是的,自动变成了true,看文档是6.5默认为true,但是感觉就算默认为true,也不能给改成true。

不能改的参数就是多余的,设计上就不应该能查询

:thinking:有道理,我去提个建议去

1 个赞

可以有,这样就不会误导,哈哈

:handshake: :handshake: :handshake:

1 个赞

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。