3

We are finally upgrading our MySQL 5.0.90 environment to MariaDB, and we would like to enable replication from MySQL 5.0 to MariaDB 10.2.8 and then cutover thus providing minimal downtime. I tried this originally with MariaDB 10.1.18 and it worked fine. MariaDB 10.2.8 became GA so we moved our upgrade process to that version. Now when I try to begin replication I get the following error in the MariaDB mysqld.err log:

Unknown system variable 'binlog_checksum', Internal MariaDB error code: 1193

When I execute 'show slave status' I see the following:

Slave_IO_Running: No
Slave_SQL_Running: Yes

Last_IO_Errno: 1595
Last_IO_Error: Relay log write failure: could not queue event from master

Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it

I've tried to do some research on this but have been unable to resolve the problem.

Here is the entire section of the log where replication is starting.

2017-11-20 8:26:43 140154253575936 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.002735' at position 98, relay log './mysqld-relay-bin.000001' position: 4 2017-11-20 8:26:43 140154252973824 [Note] Slave I/O thread: connected to master 'repl@scvm50.dev.ut1.omniture.com:3306',replication started in log 'mysql-bin.002735' at position 98 2017-11-20 8:26:43 140154252973824 [Warning] Slave I/O: Notifying master by SET @master_binlog_checksum= @@global.binlog_checksum failed with error: Unknown system variable 'binlog_checksum', Internal MariaDB error code: 1193 2017-11-20 8:26:43 140154252973824 [ERROR] Slave I/O: Replication event checksum verification failed while reading from network, Internal MariaDB error code: 1743 2017-11-20 8:26:43 140154252973824 [ERROR] Slave I/O: Relay log write failure: could not queue event from master, Internal MariaDB error code: 1595 2017-11-20 8:26:43 140154252973824 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.002735', position 98

3

I found the solution/workaround. I need to set the variable slave_sql_verify_checksum=0 on the slave (MariaDB 10.2.8). I was trying this by dynamically setting the global variable on the slave but it wasn't working. Then I found bug #MDEV 8505 which indicates that resetting the variable dynamically does not work. Once I set it in the my.cnf and restarted the instance, everything started working as expected. Thankfully this is only a interim solution until we complete the upgrade!

2

5.0 to 10.2 is about 4 major jumps. So, I am not surprised that you encountered a problem. If you like, file a bug with MariaDB about it. Normally a newer Slave will successfully replicate from an older Master. But I guess this is too far.

May I suggest that you go with 10.1 for the time being. This will be a significant upgrade for now. You may have subtle issues yet to discover. Then plan on 10.1 to, say, 10.3 next year.

The manual also says "Bug #61096 ... If backward compatibility with older slaves is a concern, you may want to set the value explicitly to NONE."

And ----- 2016-07-04 MariaDB 10.2.1 -- -- MDEV-8429 : Change binlog_checksum default to match MySQL 5.6.6+

And see https://dev.mysql.com/doc/refman/5.6/en/replication-options-binary-log.html#sysvar_master_verify_checksum

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.