MySQL slave database won’t start

MySQL

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

Unknown system variable 'binlog_checksum'

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.

Client requested master to start replication from impossible position

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:

mysql> STOP SLAVE;
mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysqliv-bin.000143', MASTER_LOG_POS=4;
mysql> START SLAVE;

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