Changing MySQL Master in Replication: with or without MASTER_LOG?
Assuming that no one can write (right now, before the change) in servers B and C you could try this:

First, lock writes on Server A, so there's nothing to replicate in the Slaves.

Server A (You'll lock all tables, NOTE: You should not exit this CLI, or it'll release the lock):

mysql&gt; FLUSH TABLES WITH READ LOCK;


Wait to Server B and Server C are up-to-date with the replication, check that both server are in the same Master Log File and Master Log Position!

Server B:

mysql&gt; SHOW MASTER STATUS;


From that one you can get your new MASTER_LOG_FILE and MASTER_LOG_POS.

Server C:

mysql&gt; STOP SLAVE;


So you can restart your slave from its new master. Then you can UNLOCK your tables in Server A (In the CLI that you had before):

mysql&gt; UNLOCK TABLES;


Now the only thing left is to do your CHANGE MASTER on Server C with the new MASTER_LOG_FILE and MASTER_LOG_POS that you got from Server B and everything should work fine.

IMPORTANT: You should check that Server B is running with log_slave_updates = TRUE and that you have log-bins too, since you'll need them for it to be a new Master.