MySQL从库列类型不一致导致复制异常问题解决(2)

从库是有个Oracle系统去查数据的,原先从库的cp_shop_activity表示utf8mb4字符集,oracle不支持。因此在这个从库上手动修改了mode字段的字符类型为varchar(200) utf8,修改后的字段类型如下图:

wKioL1jkjPew8-SVAAAu7-trnSw434.png

但是没几天后,发现主从复制报错了,错误码1677。从库上记录的错误日志如下:

wKioL1jkjTnwQkPJAADPzG4P9u0623.png

我们看下主库的mode字段是varchar(50),从库的mode字段是varchar(200)

wKioL1jkjcfhgrwvAAAszsdD6hM836.png

在从库设置:

stop slave;

set global slave_type_conversions=ALL_NON_LOSSY; 

# 默认slave_type_conversions为空,表示强制从库和主库的字段类型一致,不然就停止复制。设置为ALL_NON_LOSSY就稍微宽泛些同时确保不会造成类型转换的问题。

start slave;

show slave status\G  

这样即可解决这个问题。

官方文档:https://dev.mysql.com/doc/refman/5.6/en/replication-features-differing-tables.html

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b6f690e36f54a1ce0792607626f3a3bb.html