MySQL currently supports statement based replication between tables with columns having slightly different data types. It includes columns with different character sets. If you create this table on master: CREATE TABLE t1 (a varchar(10) character set latin1); and this table on slave: CREATE TABLE t1 (a varchar(10) character set utf8); then statement based replication works fine. When slave re-parses a statement, it converts strings to utf8 from character_set_client of the event to utf8. Row based replication doesn't work because it operates with binary images. So the strings in binary log are represented in latin1 character set, and no conversion happens to utf8. Possible solution how to make it work: - Extend table map event to transfer character set ID together with other column meta data, like data type, length and so on. - If character set of the data in the image is not the same with character of the column, then apply character set conversion. cf. BUG#15831300
