MySQL:主从复制转换错误问题
作者简介:高鹏,笔名八怪。《深入理解MySQL主从原理》图书作者,同时运营个人公众号“MySQL学习”,持续分享遇到的有趣case以及代码解析!
一、关于错误
总的来说这个错误还是比较常见,我们需要做的就是比较主从表的结构,这里主要对他的处理流程进行一个简单的解析。
二、错误抛错点
这个错误的抛错点为table_def::compatible_with函数,抛错类型为ER_SLAVE_CONVERSION_FAILED,抛错的时机为row log event在从库应用的时候会进行类型检查,见栈1。下列是抛错的部分:
rli->report(report_level, ER_SLAVE_CONVERSION_FAILED, //转换出错报错
ER(ER_SLAVE_CONVERSION_FAILED),
col, db_name, tbl_name,
source_type.c_ptr_safe(), target_type.c_ptr_safe());