msyql 版本:5.7.18 canal版本:1.1.2 其他mysql版本 5.7.20拿到的是clientCharset是33. 但是5.7.18版本拿到的是246,而canal 1.1.2中CharsetConversion没有246的配置: putEntry(246, "utf8mb4", "utf8mb4_unicode_520_ci", "UTF-8"); 导致找不到。版本问题
2019-04-17 15:03:36.165 [MultiStageCoprocessor-other-example-0] WARN com.taobao.tddl.dbsync.binlog.CharsetConversion - Unexpect mysql charset: 246 2019-04-17 15:03:36.165 [MultiStageCoprocessor-other-example-0] WARN com.taobao.tddl.dbsync.binlog.CharsetConversion - Unexpect mysql charset: 246 2019-04-17 15:03:36.165 [MultiStageCoprocessor-other-example-0] WARN com.taobao.tddl.dbsync.binlog.CharsetConversion - Unexpect mysql charset: 246 2019-04-17 15:03:36.165 [MultiStageCoprocessor-other-example-0] WARN com.taobao.tddl.dbsync.binlog.LogEvent - unsupported character set in query log: ID = 246, Charset = null, Collation = null
-- show variables like 'char%'; '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' 'character_sets_dir', '/u01/mysql_20170714/share/charsets/'
原提问者GitHub用户Xlinlin
这是由于Canal不支持MySQL 5.7.18版本的字符集246。Canal 1.1.2中的CharsetConversion只支持少数常见的字符集,不支持所有的字符集。对于这个问题,可以尝试以下几个解决方案:
升级Canal到最新版本,Canal 1.1.4及以上版本中的CharsetConversion已经支持MySQL 5.7.18的字符集246。
尝试将MySQL 5.7.18升级到5.7.20或更高版本,这个版本中的字符集已经被支持。
修改MySQL的字符集为CharsetConversion支持的字符集之一,例如utf8mb4或者utf8。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。