首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在主从复制中设置连接排序规则

在主从复制中设置连接排序规则
EN

Database Administration用户
提问于 2020-02-26 11:30:43
回答 1查看 573关注 0票数 0

我正在尝试将MySQL 8服务器(主服务器)复制到MySQL 5.7 (从实例)。我知道它不是官方支持的,但问题是我们需要使用一个只支持MySQL 5.7的服务。

我知道在MySQL5.7中有一些排序规则在MySQL8中是不可用的。为此,我将所有表从utf8mb4_0900_ai_ci转换为utf8mb4_general_ci,因为两者都支持我们的数据值,因此我能够做到这一点,而不产生任何后果。

我还在我的主配置中设置了以下设置:

代码语言:javascript
复制
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init_connect='SET collation_connection = utf8mb4_general_ci; SET NAMES utf8mb4;'

这将产生以下结果:(我没有作为超级用户连接)

代码语言:javascript
复制
mysql80> SHOW VARIABLES LIKE 'collation%';
+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | utf8mb4_0900_ai_ci |
| collation_database   | utf8mb4_general_ci |
| collation_server     | utf8mb4_general_ci |
+----------------------+--------------------+

现在,我把范围缩小到以下几个方面:我的collation_connection是罪魁祸首,因为utf8mb4_0900_ai_ci不是MySQL57的一部分。由于这个原因,我在从服务器上得到了以下错误:

代码语言:javascript
复制
Error 'Character set '#255' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file' on query. Default database: 'database'. Query: 'BEGIN'

有没有办法强迫我的主实例使用utf8mb4_general_ci而不是utf8mb4_0900_ai_ci

问候

EN

回答 1

Database Administration用户

发布于 2022-06-24 01:48:48

这是一个旧职位,但这可能会对其他人有所帮助。您已经写了:init_connect='SET collation_connection = utf8mb4_general_ci; SET NAMES utf8mb4;' --这些语句应该是另一种方式:init_connect='SET NAMES utf8mb4; SET collation_connection = utf8mb4_general_ci;'作为SET NAMES utf8mb4;也将更改collation_connection,这将撤消您以前的语句。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/260613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档