I have a MySQL master slave configuration and the slave is not working anymore. When trying to stop and start again the slave db, I am getting this error:
140530 14:21:23 [Warning] Slave I/O: Notifying master by SET @master_binlog_checksum= @@global.binlog_checksum failed with error: Unknown system variable 'binlog_checksum', Error_code: 1193
140530 14:21:23 [ERROR] Error reading packet from server: Client requested master to start replication from impossible position; the first event 'mysqliv-bin.000142' at 184658851, the last event read from './mysqliv-bin.000142' at 4, the last byte read from './mysqliv-bin.000142' at 4. ( server_errno=1236)
140530 14:21:23 [ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysqliv-bin.000142' at 184658851, the last event read from './mysqliv-bin.000142' at 4, the last byte read from './mysqliv-bin.000142' at 4.', Error_code: 1236
Any idea what can be the problem here?
Best Answer
That's because your master is running MySQL 5.5 (or earlier), and the slave is running MySQL 5.6. The
binlog_checksum
global variable was introduced in 5.6, and the slave is trying to find out if that feature is enabled on the master. But the variable doesn't exist on your master. This shouldn't cause any data loss, and the warning will go away once you upgrade your master.Sounds like your master crashed before it could write a final "Rotate to next binlog" event at the end of a binlog file. So the slave doesn't know to advance to the next binlog.
You can manually change the slave to read from the next binlog:
But first, double-check that mysqliv-bin.000143 exists on the master with
SHOW BINARY LOGS
.The following blog explains in more detail: http://www.skysql.com/blogs/adam-donnison/client-requested-master-start-replication-impossible-position