Mysql – enable log_bin_use_v1_row_events in thesql 5.6

MySQLmysql-5.5mysql-5.6replication

I have a MYSQL master with two slaves also running MYSQL 5.6. I want to create another slave and that needs to be MYSQL 5.5. I was wondering if replication will work smoothly.
I have log_bin_use_v1_row_events switched off in MYSQL 5.6 and I am using mixed format replication.

Can anyone give me advise on doing above.

Best Answer

There is one thing that cannot work with MySQL Replication from 5.5 to 5.6 : DATETIME. Why ?

MySQL 5.6 DATETIME has a very different byte format because it accommodates microseconds. When the binlog_format is ROW, or when MIXED switches from STATEMENT to ROW, only a 5.6 Slave can unpack the row change from the relay logs. A slave running MySQL 5.5 cannot handle that.

I have two recent posts where I mentioned this

The workaround I learned from my boss back in January was to switch binlog_format to STATEMENT and restart mysqld.

If you enable log_bin_use_v1_row_events on a MySQL 5.6 Master to let a MySQL 5.5 slave read it, that sounds like it could work. I still worry about the DATETIME representation. If you set the option log_bin_use_v1_row_events to true and it stops MySQL 5.6 from writing microseconds with binlog_format ROW or MIXED, then you I think have something. Based on my two posts, I cannot guarantee other statements would be immune.

I would normally say "GIVE IT A TRY !!!" but I have never tried that log_bin_use_v1_row_events. So, go ahead and try and let us know.