Being able to configure slaves to be crash-safe is one of the major improvements of MySQL 5.6 with regards to replication. However we noticed confusion on how to enable this feature correctly, so let’s clarify how it should be done.
In short
1. Stop MySQL on slave
2. Add relay_log_info_repository = TABLE
and
relay_log_recovery = ON
in my.cnf
3. Restart MySQL and relax
The gory details
To fully understand why you should change the above settings if you want crash-safe slaves, let’s first look at the reasons why replication can break when a slave crashes.
On a slave, replication involves 2 threads: the IO thread which
copies the binary log of the master to a local copy called the
relay log and the SQL thread which then executes the queries
written in the relay log. The current position of each thread is
stored in a file: master.info
for the IO thread …