mysql 主从复制报错

2018-02-11 12:37:49 +08:00
 XOXO360

Error 'Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (latin1_swedish_ci,EXPLICIT) for operation '='' on query. Default database: 'aaa'. Query: 有没有 mysql 大佬碰到过啊。

1644 次点击
所在节点    数据库
15 条回复
XOXO360
2018-02-11 12:46:30 +08:00
有木有大佬啊±±±±±±±
hcymk2
2018-02-11 12:48:06 +08:00
主从 2 个库的字符编码集不同吧。
XOXO360
2018-02-11 12:58:26 +08:00
@hcymk2 插入的表的话是默认。。查看 show full columns from 表。是空,
查询的话。我在主从库都试过都能执行。latin1_swedish_ci 这个字符集我硬是没找出来是在哪里存在。莫名其妙。
XOXO360
2018-02-11 13:00:45 +08:00
character_set_client utf8
character_set_connection utf8
character_set_database utf8mb4
character_set_filesystem binary
character_set_results utf8
character_set_server utf8mb4
character_set_system utf8
collation_connection utf8_general_ci
collation_database utf8mb4_general_ci
collation_server utf8mb4_general_ci
hcymk2
2018-02-11 13:21:30 +08:00
utf8mb4 这个
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
marrysail
2018-02-11 13:22:34 +08:00
可能是特殊情况下,写入的字符集编码和 mysql 指定表预定义的 编码集 不一致导致的
XOXO360
2018-02-11 13:36:39 +08:00
@hcymk2 请教一下,latin1_swedish_ci 报错这个不知道从哪里来的。现在运维锁死了。我无法做任何修改。他们要等腾讯云回复。能麻烦您说说原因么。是因为 utf8mp4 弄出的 latin1_swedish_ci 吗?我 sql 在从库跑也没有报错啊。
XOXO360
2018-02-11 13:37:35 +08:00
@marrysail 关键是 latin1_swedish_ci 全局变量没有它。而且我 sql 里面所有用到的表都查了一下也没有它。这个字符集是怎么跑出来的。很奇怪。。
XOXO360
2018-02-11 13:38:21 +08:00
Skip_Counter: 0
Exec_Master_Log_Pos: 80058476
Relay_Log_Space: 81198493224
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1267
Last_SQL_Error: Error 'Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (latin1_swedish_ci,EXPLICIT) for operation '='' on query. Default database: 'aaa'. Query: 'insert into
hcymk2
2018-02-11 13:54:23 +08:00
latin1_swedish_ci 这个是 mysql(原来是瑞典的公司)的默认字符编码集.那个插入语句方便能贴全么?
XOXO360
2018-02-11 14:02:59 +08:00
@hcymk2 就是 insert into.....select,里面用 left join 子查询。通过日期。。sql 肯定没问题。因为主库跑完一点事都没有。。就是从库那边莫名其妙。。。
XOXO360
2018-02-11 14:05:36 +08:00
@hcymk2 我是存储过程执行。while 循环。正式是一点问题都没有。
hcymk2
2018-02-11 14:19:54 +08:00
XOXO360
2018-02-11 14:58:12 +08:00
@hcymk2 应该是某段 sql 自动转化了。。目前看不了日志是最头疼的。谢谢您了。。
XOXO360
2018-02-11 17:37:13 +08:00
@hcymk2 现在事情的后续是,运维重新做过主从,以前是 mix 的同步方式也就是读 binlog 的 sql,现在改 row。数据行同步。具体以后看结果了。。但是如果事实是字符集自动转化。为什么 mysql 官方就不出个字符转化的文档。换同步方式也只是规避这个问题。并没有根本上解决这个问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/430175

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX