3,MHA在执行master_check_repl会调用/usr/bin/mysqlbinlog,对于源码安装在不同的路径的mysql高版本则收到如下错误提示:
mysqlbinlog version is 3.2 (included in MySQL Client 5.0 or lower). This is not recommended. Consider upgrading MySQL Client to 5.1 or higher.
mysqlbinlog is 3.2 (included in MySQL Client 5.0 or lower), but MySQL server version is 5.5.33-log. mysqlbinlog can not parse row based events. Terminating script for safety reasons.
解决方法:
重新创建软链接:
mv /usr/bin/mysqlbinlog /usr/bin/mysqlbinlog.bak
ln -sv /usr/local/ver01/percona/bin/mysqlbinlog /usr/bin/mysqlbinlog
也可以卸载系统当前的mysql rpm包
4,MHA在完成一次故障切换后会退出,需要手动再次开启。
5,在线切换时的报错:
Thu Jan 21 17:50:28 2016 - [error][/usr/lib/perl5/site_perl/5.8.8/MHA/MasterRotate.pm, ln612] We should not start online master switch when one of connections are running long updates on the current master(192.168.6.85(192.168.6.85:3306)). Currently 1 update thread(s) are running.
Details:
{'Time' => '11277','db' => undef,'Id' => '1','User' => 'event_scheduler','State' => 'Waiting on empty queue','Rows_read' => '0','Command' => 'Daemon','Rows_examined' => '0','Info' => undef,'Host' => 'localhost','Rows_sent' => '0'}
Thu Jan 21 17:50:28 2016 - [error][/usr/lib/perl5/site_perl/5.8.8/MHA/MasterRotate.pm, ln652] Got ERROR: at /usr/bin/masterha_master_switch line 53
这是由于当前主库上开启了event_scheduler导致,我们可以临时关闭下event_scheduler通过set global event_scheduler=0;待迁移完成后再开启。