mysql command failed with rc 127:0!
问题表现
Fri Aug 24 11:20:37 2018 - [info] Connecting to root@192.168.2.63(192.168.2.63:22)..
Checking slave recovery environment settings..
Opening /mysql1/data/relay-log.info ... ok.
Relay log found at /mysql1/data, up to node3-relay-bin.000002
Temporary relay log file is /mysql1/data/node3-relay-bin.000002
Testing mysql connection and privileges..sh: mysql: command not found
mysql command failed with rc 127:0!
at /usr/local/bin/apply_diff_relay_logs line 375
main::check() called at /usr/local/bin/apply_diff_relay_logs line 497
eval {...} called at /usr/local/bin/apply_diff_relay_logs line 475
main::main() called at /usr/local/bin/apply_diff_relay_logs line 120
Fri Aug 24 11:20:37 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln208] Slaves settings check failed!
Fri Aug 24 11:20:37 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln416] Slave configuration failed.
Fri Aug 24 11:20:37 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln427] Error happened on checking configurations. at /etc/mha/mhamanager/bin/masterha_check_repl line 48
Fri Aug 24 11:20:37 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln525] Error happened on monitoring servers.
Fri Aug 24 11:20:37 2018 - [info] Got exit code 1 (Not master dead).
MySQL Replication Health is NOT OK!
解决办法
[root@node3 ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
验证
[root@node3 bin]# /etc/mha/mhamanager/bin/masterha_check_repl --conf=/etc/mha/app1/app1.cnf
Fri Aug 24 11:23:29 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Fri Aug 24 11:23:29 2018 - [info] Reading application default configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 11:23:29 2018 - [info] Reading server configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 11:23:29 2018 - [info] MHA::MasterMonitor version 0.57.
Fri Aug 24 11:23:30 2018 - [info] GTID failover mode = 0
Fri Aug 24 11:23:30 2018 - [info] Dead Servers:
Fri Aug 24 11:23:30 2018 - [info] Alive Servers:
Fri Aug 24 11:23:30 2018 - [info] 192.168.2.61(192.168.2.61:3306)
Fri Aug 24 11:23:30 2018 - [info] 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 11:23:30 2018 - [info] 192.168.2.63(192.168.2.63:3306)
Fri Aug 24 11:23:30 2018 - [info] Alive Slaves:
Fri Aug 24 11:23:30 2018 - [info] 192.168.2.61(192.168.2.61:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Fri Aug 24 11:23:30 2018 - [info] Replicating from 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 11:23:30 2018 - [info] Primary candidate for the new Master (candidate_master is set)
Fri Aug 24 11:23:30 2018 - [info] 192.168.2.63(192.168.2.63:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Fri Aug 24 11:23:30 2018 - [info] Replicating from 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 11:23:30 2018 - [info] Not candidate for the new Master (no_master is set)
Fri Aug 24 11:23:30 2018 - [info] Current Alive Master: 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 11:23:30 2018 - [info] Checking slave configurations..
Fri Aug 24 11:23:30 2018 - [info] read_only=1 is not set on slave 192.168.2.61(192.168.2.61:3306).
Fri Aug 24 11:23:30 2018 - [warning] relay_log_purge=0 is not set on slave 192.168.2.61(192.168.2.61:3306).
Fri Aug 24 11:23:30 2018 - [info] read_only=1 is not set on slave 192.168.2.63(192.168.2.63:3306).
Fri Aug 24 11:23:30 2018 - [warning] relay_log_purge=0 is not set on slave 192.168.2.63(192.168.2.63:3306).
Fri Aug 24 11:23:30 2018 - [info] Checking replication filtering settings..
Fri Aug 24 11:23:30 2018 - [info] binlog_do_db= , binlog_ignore_db=
Fri Aug 24 11:23:30 2018 - [info] Replication filtering check ok.
Fri Aug 24 11:23:30 2018 - [info] GTID (with auto-pos) is not supported
Fri Aug 24 11:23:30 2018 - [info] Starting SSH connection tests..
Fri Aug 24 11:23:31 2018 - [info] All SSH connection tests passed successfully.
Fri Aug 24 11:23:31 2018 - [info] Checking MHA Node version..
Fri Aug 24 11:23:32 2018 - [info] Version check ok.
Fri Aug 24 11:23:32 2018 - [info] Checking SSH publickey authentication settings on the current master..
Fri Aug 24 11:23:32 2018 - [info] HealthCheck: SSH to 192.168.2.62 is reachable.
Fri Aug 24 11:23:32 2018 - [info] Master MHA Node version is 0.57.
Fri Aug 24 11:23:32 2018 - [info] Checking recovery script configurations on 192.168.2.62(192.168.2.62:3306)..
Fri Aug 24 11:23:32 2018 - [info] Executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/mysql1/data --output_file=/etc/mha/app1/save_binary_logs_test --manager_version=0.57 --start_file=mysql-bin.000012
Fri Aug 24 11:23:32 2018 - [info] Connecting to root@192.168.2.62(192.168.2.62:22)..
Creating /etc/mha/app1 if not exists.. ok.
Checking output directory is accessible or not..
ok.
Binlog found at /mysql1/data, up to mysql-bin.000012
Fri Aug 24 11:23:33 2018 - [info] Binlog setting check done.
Fri Aug 24 11:23:33 2018 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
Fri Aug 24 11:23:33 2018 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='root' --slave_host=192.168.2.61 --slave_ip=192.168.2.61 --slave_port=3306 --workdir=/etc/mha/app1 --target_version=5.7.21-log --manager_version=0.57 --relay_log_info=/mysql1/data/relay-log.info --relay_dir=/mysql1/data/ --slave_pass=xxx
Fri Aug 24 11:23:33 2018 - [info] Connecting to root@192.168.2.61(192.168.2.61:22)..
Checking slave recovery environment settings..
Opening /mysql1/data/relay-log.info ... ok.
Relay log found at /mysql1/data, up to node1-relay-bin.000002
Temporary relay log file is /mysql1/data/node1-relay-bin.000002
Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
done.
Testing mysqlbinlog output.. done.
Cleaning up test file(s).. done.
Fri Aug 24 11:23:33 2018 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='root' --slave_host=192.168.2.63 --slave_ip=192.168.2.63 --slave_port=3306 --workdir=/etc/mha/app1 --target_version=5.7.21-log --manager_version=0.57 --relay_log_info=/mysql1/data/relay-log.info --relay_dir=/mysql1/data/ --slave_pass=xxx
Fri Aug 24 11:23:33 2018 - [info] Connecting to root@192.168.2.63(192.168.2.63:22)..
Checking slave recovery environment settings..
Opening /mysql1/data/relay-log.info ... ok.
Relay log found at /mysql1/data, up to node3-relay-bin.000002
Temporary relay log file is /mysql1/data/node3-relay-bin.000002
Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
done.
Testing mysqlbinlog output.. done.
Cleaning up test file(s).. done.
Fri Aug 24 11:23:33 2018 - [info] Slaves settings check done.
Fri Aug 24 11:23:33 2018 - [info]
192.168.2.62(192.168.2.62:3306) (current master)
+--192.168.2.61(192.168.2.61:3306)
+--192.168.2.63(192.168.2.63:3306)
Fri Aug 24 11:23:33 2018 - [info] Checking replication health on 192.168.2.61..
Fri Aug 24 11:23:33 2018 - [info] ok.
Fri Aug 24 11:23:33 2018 - [info] Checking replication health on 192.168.2.63..
Fri Aug 24 11:23:33 2018 - [info] ok.
Fri Aug 24 11:23:33 2018 - [info] Checking master_ip_failover_script status:
Fri Aug 24 11:23:33 2018 - [info] /etc/mha/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.2.62 --orig_master_ip=192.168.2.62 --orig_master_port=3306
IN SCRIPT TEST====/sbin/ifconfig eth0:0 down==/sbin/ifconfig eth0:0 192.168.6.66/24===
Checking the Status of the script.. OK
Fri Aug 24 11:23:33 2018 - [info] OK.
Fri Aug 24 11:23:33 2018 - [warning] shutdown_script is not defined.
Fri Aug 24 11:23:33 2018 - [info] Got exit code 0 (Not master dead).
MySQL Replication Health is OK.
Can’t exec “mysqlbinlog”: No such file or directory at
问题表现
Fri Aug 24 11:24:25 2018 - [info] Connecting to root@192.168.2.63(192.168.2.63:22)..
Can't exec "mysqlbinlog": No such file or directory at /usr/local/share/perl5/MHA/BinlogManager.pm line 106.
mysqlbinlog version command failed with rc 1:0, please verify PATH, LD_LIBRARY_PATH, and client options
at /usr/local/bin/apply_diff_relay_logs line 493
Fri Aug 24 11:24:25 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln208] Slaves settings check failed!
Fri Aug 24 11:24:25 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln416] Slave configuration failed.
Fri Aug 24 11:24:25 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln427] Error happened on checking configurations. at /etc/mha/mhamanager/bin/masterha_check_repl line 48
Fri Aug 24 11:24:25 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln525] Error happened on monitoring servers.
Fri Aug 24 11:24:25 2018 - [info] Got exit code 1 (Not master dead).
MySQL Replication Health is NOT OK!
解决方法
[root@node3 ~]# ln -s /usr/local/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog
问题验证
[root@node3 bin]# /etc/mha/mhamanager/bin/masterha_check_repl --conf=/etc/mha/app1/app1.cnf
Fri Aug 24 11:27:28 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Fri Aug 24 11:27:28 2018 - [info] Reading application default configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 11:27:28 2018 - [info] Reading server configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 11:27:28 2018 - [info] MHA::MasterMonitor version 0.57.
Fri Aug 24 11:27:28 2018 - [info] GTID failover mode = 0
Fri Aug 24 11:27:28 2018 - [info] Dead Servers:
Fri Aug 24 11:27:28 2018 - [info] Alive Servers:
Fri Aug 24 11:27:28 2018 - [info] 192.168.2.61(192.168.2.61:3306)
Fri Aug 24 11:27:28 2018 - [info] 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 11:27:28 2018 - [info] 192.168.2.63(192.168.2.63:3306)
Fri Aug 24 11:27:28 2018 - [info] Alive Slaves:
Fri Aug 24 11:27:28 2018 - [info] 192.168.2.61(192.168.2.61:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Fri Aug 24 11:27:28 2018 - [info] Replicating from 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 11:27:28 2018 - [info] Primary candidate for the new Master (candidate_master is set)
Fri Aug 24 11:27:28 2018 - [info] 192.168.2.63(192.168.2.63:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Fri Aug 24 11:27:28 2018 - [info] Replicating from 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 11:27:28 2018 - [info] Not candidate for the new Master (no_master is set)
Fri Aug 24 11:27:28 2018 - [info] Current Alive Master: 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 11:27:28 2018 - [info] Checking slave configurations..
Fri Aug 24 11:27:28 2018 - [info] read_only=1 is not set on slave 192.168.2.61(192.168.2.61:3306).
Fri Aug 24 11:27:28 2018 - [warning] relay_log_purge=0 is not set on slave 192.168.2.61(192.168.2.61:3306).
Fri Aug 24 11:27:28 2018 - [info] read_only=1 is not set on slave 192.168.2.63(192.168.2.63:3306).
Fri Aug 24 11:27:28 2018 - [warning] relay_log_purge=0 is not set on slave 192.168.2.63(192.168.2.63:3306).
Fri Aug 24 11:27:28 2018 - [info] Checking replication filtering settings..
Fri Aug 24 11:27:28 2018 - [info] binlog_do_db= , binlog_ignore_db=
Fri Aug 24 11:27:28 2018 - [info] Replication filtering check ok.
Fri Aug 24 11:27:28 2018 - [info] GTID (with auto-pos) is not supported
Fri Aug 24 11:27:28 2018 - [info] Starting SSH connection tests..
Fri Aug 24 11:27:30 2018 - [info] All SSH connection tests passed successfully.
Fri Aug 24 11:27:30 2018 - [info] Checking MHA Node version..
Fri Aug 24 11:27:31 2018 - [info] Version check ok.
Fri Aug 24 11:27:31 2018 - [info] Checking SSH publickey authentication settings on the current master..
Fri Aug 24 11:27:31 2018 - [info] HealthCheck: SSH to 192.168.2.62 is reachable.
Fri Aug 24 11:27:31 2018 - [info] Master MHA Node version is 0.57.
Fri Aug 24 11:27:31 2018 - [info] Checking recovery script configurations on 192.168.2.62(192.168.2.62:3306)..
Fri Aug 24 11:27:31 2018 - [info] Executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/mysql1/data --output_file=/etc/mha/app1/save_binary_logs_test --manager_version=0.57 --start_file=mysql-bin.000012
Fri Aug 24 11:27:31 2018 - [info] Connecting to root@192.168.2.62(192.168.2.62:22)..
Creating /etc/mha/app1 if not exists.. ok.
Checking output directory is accessible or not..
ok.
Binlog found at /mysql1/data, up to mysql-bin.000012
Fri Aug 24 11:27:32 2018 - [info] Binlog setting check done.
Fri Aug 24 11:27:32 2018 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
Fri Aug 24 11:27:32 2018 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='root' --slave_host=192.168.2.61 --slave_ip=192.168.2.61 --slave_port=3306 --workdir=/etc/mha/app1 --target_version=5.7.21-log --manager_version=0.57 --relay_log_info=/mysql1/data/relay-log.info --relay_dir=/mysql1/data/ --slave_pass=xxx
Fri Aug 24 11:27:32 2018 - [info] Connecting to root@192.168.2.61(192.168.2.61:22)..
Checking slave recovery environment settings..
Opening /mysql1/data/relay-log.info ... ok.
Relay log found at /mysql1/data, up to node1-relay-bin.000002
Temporary relay log file is /mysql1/data/node1-relay-bin.000002
Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
done.
Testing mysqlbinlog output.. done.
Cleaning up test file(s).. done.
Fri Aug 24 11:27:32 2018 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='root' --slave_host=192.168.2.63 --slave_ip=192.168.2.63 --slave_port=3306 --workdir=/etc/mha/app1 --target_version=5.7.21-log --manager_version=0.57 --relay_log_info=/mysql1/data/relay-log.info --relay_dir=/mysql1/data/ --slave_pass=xxx
Fri Aug 24 11:27:32 2018 - [info] Connecting to root@192.168.2.63(192.168.2.63:22)..
Checking slave recovery environment settings..
Opening /mysql1/data/relay-log.info ... ok.
Relay log found at /mysql1/data, up to node3-relay-bin.000002
Temporary relay log file is /mysql1/data/node3-relay-bin.000002
Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
done.
Testing mysqlbinlog output.. done.
Cleaning up test file(s).. done.
Fri Aug 24 11:27:32 2018 - [info] Slaves settings check done.
Fri Aug 24 11:27:32 2018 - [info]
192.168.2.62(192.168.2.62:3306) (current master)
+--192.168.2.61(192.168.2.61:3306)
+--192.168.2.63(192.168.2.63:3306)
Fri Aug 24 11:27:32 2018 - [info] Checking replication health on 192.168.2.61..
Fri Aug 24 11:27:32 2018 - [info] ok.
Fri Aug 24 11:27:32 2018 - [info] Checking replication health on 192.168.2.63..
Fri Aug 24 11:27:32 2018 - [info] ok.
Fri Aug 24 11:27:32 2018 - [info] Checking master_ip_failover_script status:
Fri Aug 24 11:27:32 2018 - [info] /etc/mha/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.2.62 --orig_master_ip=192.168.2.62 --orig_master_port=3306
IN SCRIPT TEST====/sbin/ifconfig eth0:0 down==/sbin/ifconfig eth0:0 192.168.6.66/24===
Checking the Status of the script.. OK
Fri Aug 24 11:27:32 2018 - [info] OK.
Fri Aug 24 11:27:32 2018 - [warning] shutdown_script is not defined.
Fri Aug 24 11:27:32 2018 - [info] Got exit code 0 (Not master dead).
MySQL Replication Health is OK.
User dao1 does not exist or does not have REPLICATION SLAVE privilege!
问题表现
Fri Aug 24 11:34:15 2018 - [error][/usr/local/share/perl5/MHA/Server.pm, ln398] 192.168.2.61(192.168.2.61:3306): User dao1 does not exist or does not have REPLICATION SLAVE privilege! Other slaves can not start replication from this host.
Fri Aug 24 11:34:15 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln427] Error happened on checking configurations. at /usr/local/share/perl5/MHA/ServerManager.pm line 1403
Fri Aug 24 11:34:15 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln525] Error happened on monitoring servers.
Fri Aug 24 11:34:15 2018 - [info] Got exit code 1 (Not master dead).
MySQL Replication Health is NOT OK!
解决方法
- 修改配置文件中的账户正确账户 或创建复制用户
修改配置文件
[root@node3 ~]# vi /etc/mha/app1/app1.cnf
[server default]
# working directory on the manager
manager_workdir=/etc/mha/app1
manager_log=/etc/mha/app1/manager.log
remote_workdir=/etc/mha/app1
# In case of automatic file-over, the following script will be used
master_ip_failover_script=/etc/mha/master_ip_failover
master_ip_online_change_script=/etc/mha/master_ip_online_change
#mha连接到mysql的帐号
user=root
password=root
#mysql主从复制架构的复制用户(此处账户出错应为dao !!! )
repl_user=dao1
repl_password=dao
ssh_user=root
#心跳
ping_interval=1
secondary_check_script= masterha_secondary_check -s 192.168.2.62 -s 192.168.2.63
[server1]
hostname=192.168.2.61
port=3306
master_binlog_dir="/mysql1/data"
candidate_master=1
ssh_port=22
[server2]
hostname=192.168.2.62
port=3306
master_binlog_dir="/mysql1/data"
candidate_master=1
ssh_port=22
[server3]
hostname=192.168.2.63
port=3306
master_binlog_dir="/mysql1/data"
no_master=1
ssh_port=22
- 或创建复制用户
GRANT ALL PRIVILEGES ON *.* TO 'dao'@'192.168.2.%' IDENTIFIED BY 'dao' ;
问题验证
-本例中修改了配置文件中的复制用户
[root@node3 ~]# vi /etc/mha/app1/app1.cnf
[server default]
# working directory on the manager
manager_workdir=/etc/mha/app1
manager_log=/etc/mha/app1/manager.log
remote_workdir=/etc/mha/app1
# In case of automatic file-over, the following script will be used
master_ip_failover_script=/etc/mha/master_ip_failover
master_ip_online_change_script=/etc/mha/master_ip_online_change
#mha连接到mysql的帐号
user=root
password=root
#mysql主从复制架构的复制用户
repl_user=dao
repl_password=dao
ssh_user=root
#心跳
ping_interval=1
secondary_check_script= masterha_secondary_check -s 192.168.2.62 -s 192.168.2.63
[server1]
hostname=192.168.2.61
port=3306
master_binlog_dir="/mysql1/data"
candidate_master=1
ssh_port=22
[server2]
hostname=192.168.2.62
port=3306
master_binlog_dir="/mysql1/data"
candidate_master=1
ssh_port=22
[server3]
hostname=192.168.2.63
port=3306
master_binlog_dir="/mysql1/data"
no_master=1
ssh_port=22
[root@node3 bin]# /etc/mha/mhamanager/bin/masterha_check_repl --conf=/etc/mha/app1/app1.cnf
Fri Aug 24 12:06:26 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Fri Aug 24 12:06:26 2018 - [info] Reading application default configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 12:06:26 2018 - [info] Reading server configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 12:06:26 2018 - [info] MHA::MasterMonitor version 0.57.
Fri Aug 24 12:06:27 2018 - [info] GTID failover mode = 0
Fri Aug 24 12:06:27 2018 - [info] Dead Servers:
Fri Aug 24 12:06:27 2018 - [info] Alive Servers:
Fri Aug 24 12:06:27 2018 - [info] 192.168.2.61(192.168.2.61:3306)
Fri Aug 24 12:06:27 2018 - [info] 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 12:06:27 2018 - [info] 192.168.2.63(192.168.2.63:3306)
Fri Aug 24 12:06:27 2018 - [info] Alive Slaves:
Fri Aug 24 12:06:27 2018 - [info] 192.168.2.61(192.168.2.61:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Fri Aug 24 12:06:27 2018 - [info] Replicating from 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 12:06:27 2018 - [info] Primary candidate for the new Master (candidate_master is set)
Fri Aug 24 12:06:27 2018 - [info] 192.168.2.63(192.168.2.63:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Fri Aug 24 12:06:27 2018 - [info] Replicating from 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 12:06:27 2018 - [info] Not candidate for the new Master (no_master is set)
Fri Aug 24 12:06:27 2018 - [info] Current Alive Master: 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 12:06:27 2018 - [info] Checking slave configurations..
Fri Aug 24 12:06:27 2018 - [info] read_only=1 is not set on slave 192.168.2.61(192.168.2.61:3306).
Fri Aug 24 12:06:27 2018 - [warning] relay_log_purge=0 is not set on slave 192.168.2.61(192.168.2.61:3306).
Fri Aug 24 12:06:27 2018 - [info] read_only=1 is not set on slave 192.168.2.63(192.168.2.63:3306).
Fri Aug 24 12:06:27 2018 - [warning] relay_log_purge=0 is not set on slave 192.168.2.63(192.168.2.63:3306).
Fri Aug 24 12:06:27 2018 - [info] Checking replication filtering settings..
Fri Aug 24 12:06:27 2018 - [info] binlog_do_db= , binlog_ignore_db=
Fri Aug 24 12:06:27 2018 - [info] Replication filtering check ok.
Fri Aug 24 12:06:27 2018 - [info] GTID (with auto-pos) is not supported
Fri Aug 24 12:06:27 2018 - [info] Starting SSH connection tests..
Fri Aug 24 12:06:28 2018 - [info] All SSH connection tests passed successfully.
Fri Aug 24 12:06:28 2018 - [info] Checking MHA Node version..
Fri Aug 24 12:06:29 2018 - [info] Version check ok.
Fri Aug 24 12:06:29 2018 - [info] Checking SSH publickey authentication settings on the current master..
Fri Aug 24 12:06:29 2018 - [info] HealthCheck: SSH to 192.168.2.62 is reachable.
Fri Aug 24 12:06:29 2018 - [info] Master MHA Node version is 0.57.
Fri Aug 24 12:06:29 2018 - [info] Checking recovery script configurations on 192.168.2.62(192.168.2.62:3306)..
Fri Aug 24 12:06:29 2018 - [info] Executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/mysql1/data --output_file=/etc/mha/app1/save_binary_logs_test --manager_version=0.57 --start_file=mysql-bin.000012
Fri Aug 24 12:06:29 2018 - [info] Connecting to root@192.168.2.62(192.168.2.62:22)..
Creating /etc/mha/app1 if not exists.. ok.
Checking output directory is accessible or not..
ok.
Binlog found at /mysql1/data, up to mysql-bin.000012
Fri Aug 24 12:06:30 2018 - [info] Binlog setting check done.
Fri Aug 24 12:06:30 2018 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
Fri Aug 24 12:06:30 2018 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='root' --slave_host=192.168.2.61 --slave_ip=192.168.2.61 --slave_port=3306 --workdir=/etc/mha/app1 --target_version=5.7.21-log --manager_version=0.57 --relay_log_info=/mysql1/data/relay-log.info --relay_dir=/mysql1/data/ --slave_pass=xxx
Fri Aug 24 12:06:30 2018 - [info] Connecting to root@192.168.2.61(192.168.2.61:22)..
Checking slave recovery environment settings..
Opening /mysql1/data/relay-log.info ... ok.
Relay log found at /mysql1/data, up to node1-relay-bin.000002
Temporary relay log file is /mysql1/data/node1-relay-bin.000002
Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
done.
Testing mysqlbinlog output.. done.
Cleaning up test file(s).. done.
Fri Aug 24 12:06:30 2018 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='root' --slave_host=192.168.2.63 --slave_ip=192.168.2.63 --slave_port=3306 --workdir=/etc/mha/app1 --target_version=5.7.21-log --manager_version=0.57 --relay_log_info=/mysql1/data/relay-log.info --relay_dir=/mysql1/data/ --slave_pass=xxx
Fri Aug 24 12:06:30 2018 - [info] Connecting to root@192.168.2.63(192.168.2.63:22)..
Checking slave recovery environment settings..
Opening /mysql1/data/relay-log.info ... ok.
Relay log found at /mysql1/data, up to node3-relay-bin.000002
Temporary relay log file is /mysql1/data/node3-relay-bin.000002
Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
done.
Testing mysqlbinlog output.. done.
Cleaning up test file(s).. done.
Fri Aug 24 12:06:30 2018 - [info] Slaves settings check done.
Fri Aug 24 12:06:30 2018 - [info]
192.168.2.62(192.168.2.62:3306) (current master)
+--192.168.2.61(192.168.2.61:3306)
+--192.168.2.63(192.168.2.63:3306)
Fri Aug 24 12:06:30 2018 - [info] Checking replication health on 192.168.2.61..
Fri Aug 24 12:06:30 2018 - [info] ok.
Fri Aug 24 12:06:30 2018 - [info] Checking replication health on 192.168.2.63..
Fri Aug 24 12:06:30 2018 - [info] ok.
Fri Aug 24 12:06:30 2018 - [info] Checking master_ip_failover_script status:
Fri Aug 24 12:06:30 2018 - [info] /etc/mha/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.2.62 --orig_master_ip=192.168.2.62 --orig_master_port=3306
IN SCRIPT TEST====/sbin/ifconfig eth0:0 down==/sbin/ifconfig eth0:0 192.168.6.66/24===
Checking the Status of the script.. OK
Fri Aug 24 12:06:30 2018 - [info] OK.
Fri Aug 24 12:06:30 2018 - [warning] shutdown_script is not defined.
Fri Aug 24 12:06:30 2018 - [info] Got exit code 0 (Not master dead).
MySQL Replication Health is OK.
1045:Access denied for user ‘root1’@’node3’
问题表现
[root@node3 bin]# /etc/mha/mhamanager/bin/masterha_check_repl --conf=/etc/mha/app1/app1.cnf
Fri Aug 24 12:26:01 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Fri Aug 24 12:26:01 2018 - [info] Reading application default configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 12:26:01 2018 - [info] Reading server configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 12:26:01 2018 - [info] MHA::MasterMonitor version 0.57.
Fri Aug 24 12:26:01 2018 - [error][/usr/local/share/perl5/MHA/ServerManager.pm, ln301] Got MySQL error when connecting 192.168.2.63(192.168.2.63:3306) :1045:Access denied for user 'root1'@'node3' (using password: YES), but this is not a MySQL crash. Check MySQL server settings.
at /usr/local/share/perl5/MHA/ServerManager.pm line 297
Fri Aug 24 12:26:01 2018 - [error][/usr/local/share/perl5/MHA/ServerManager.pm, ln301] Got MySQL error when connecting 192.168.2.61(192.168.2.61:3306) :1045:Access denied for user 'root1'@'node3' (using password: YES), but this is not a MySQL crash. Check MySQL server settings.
at /usr/local/share/perl5/MHA/ServerManager.pm line 297
Fri Aug 24 12:26:01 2018 - [error][/usr/local/share/perl5/MHA/ServerManager.pm, ln301] Got MySQL error when connecting 192.168.2.62(192.168.2.62:3306) :1045:Access denied for user 'root1'@'node3' (using password: YES), but this is not a MySQL crash. Check MySQL server settings.
at /usr/local/share/perl5/MHA/ServerManager.pm line 297
Fri Aug 24 12:26:01 2018 - [error][/usr/local/share/perl5/MHA/ServerManager.pm, ln309] Got fatal error, stopping operations
Fri Aug 24 12:26:01 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln427] Error happened on checking configurations. at /usr/local/share/perl5/MHA/MasterMonitor.pm line 329
Fri Aug 24 12:26:01 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln525] Error happened on monitoring servers.
Fri Aug 24 12:26:01 2018 - [info] Got exit code 1 (Not master dead).
MySQL Replication Health is NOT OK!
解决方法
- 修改配置文件中的用户名 或创建账户
修改配置文件
[root@node3 ~]# vi /etc/mha/app1/app1.cnf
[server default]
# working directory on the manager
manager_workdir=/etc/mha/app1
manager_log=/etc/mha/app1/manager.log
remote_workdir=/etc/mha/app1
# In case of automatic file-over, the following script will be used
master_ip_failover_script=/etc/mha/master_ip_failover
master_ip_online_change_script=/etc/mha/master_ip_online_change
#mha连接到mysql的用户(此处账户出错应为root!!! )
user=root1
password=root
#mysql主从复制架构的复制用户
repl_user=dao
repl_password=dao
ssh_user=root
#心跳
ping_interval=1
secondary_check_script= masterha_secondary_check -s 192.168.2.62 -s 192.168.2.63
[server1]
hostname=192.168.2.61
port=3306
master_binlog_dir="/mysql1/data"
candidate_master=1
ssh_port=22
[server2]
hostname=192.168.2.62
port=3306
master_binlog_dir="/mysql1/data"
candidate_master=1
ssh_port=22
[server3]
hostname=192.168.2.63
port=3306
master_binlog_dir="/mysql1/data"
no_master=1
ssh_port=22
- 或创建用户
GRANT ALL PRIVILEGES ON *.* TO 'root1'@'192.168.2.%' IDENTIFIED BY 'dao' ;
问题验证
[root@node3 bin]# /etc/mha/mhamanager/bin/masterha_check_repl --conf=/etc/mha/app1/app1.cnf
Fri Aug 24 12:29:47 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Fri Aug 24 12:29:47 2018 - [info] Reading application default configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 12:29:47 2018 - [info] Reading server configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 12:29:47 2018 - [info] MHA::MasterMonitor version 0.57.
Fri Aug 24 12:29:47 2018 - [info] GTID failover mode = 0
Fri Aug 24 12:29:47 2018 - [info] Dead Servers:
Fri Aug 24 12:29:47 2018 - [info] Alive Servers:
Fri Aug 24 12:29:47 2018 - [info] 192.168.2.61(192.168.2.61:3306)
Fri Aug 24 12:29:47 2018 - [info] 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 12:29:47 2018 - [info] 192.168.2.63(192.168.2.63:3306)
Fri Aug 24 12:29:47 2018 - [info] Alive Slaves:
Fri Aug 24 12:29:47 2018 - [info] 192.168.2.61(192.168.2.61:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Fri Aug 24 12:29:47 2018 - [info] Replicating from 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 12:29:47 2018 - [info] Primary candidate for the new Master (candidate_master is set)
Fri Aug 24 12:29:47 2018 - [info] 192.168.2.63(192.168.2.63:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Fri Aug 24 12:29:47 2018 - [info] Replicating from 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 12:29:47 2018 - [info] Not candidate for the new Master (no_master is set)
Fri Aug 24 12:29:47 2018 - [info] Current Alive Master: 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 12:29:47 2018 - [info] Checking slave configurations..
Fri Aug 24 12:29:47 2018 - [info] read_only=1 is not set on slave 192.168.2.61(192.168.2.61:3306).
Fri Aug 24 12:29:47 2018 - [warning] relay_log_purge=0 is not set on slave 192.168.2.61(192.168.2.61:3306).
Fri Aug 24 12:29:47 2018 - [info] read_only=1 is not set on slave 192.168.2.63(192.168.2.63:3306).
Fri Aug 24 12:29:47 2018 - [warning] relay_log_purge=0 is not set on slave 192.168.2.63(192.168.2.63:3306).
Fri Aug 24 12:29:47 2018 - [info] Checking replication filtering settings..
Fri Aug 24 12:29:47 2018 - [info] binlog_do_db= , binlog_ignore_db=
Fri Aug 24 12:29:47 2018 - [info] Replication filtering check ok.
Fri Aug 24 12:29:47 2018 - [info] GTID (with auto-pos) is not supported
Fri Aug 24 12:29:47 2018 - [info] Starting SSH connection tests..
Fri Aug 24 12:29:48 2018 - [info] All SSH connection tests passed successfully.
Fri Aug 24 12:29:48 2018 - [info] Checking MHA Node version..
Fri Aug 24 12:29:49 2018 - [info] Version check ok.
Fri Aug 24 12:29:49 2018 - [info] Checking SSH publickey authentication settings on the current master..
Fri Aug 24 12:29:49 2018 - [info] HealthCheck: SSH to 192.168.2.62 is reachable.
Fri Aug 24 12:29:49 2018 - [info] Master MHA Node version is 0.57.
Fri Aug 24 12:29:49 2018 - [info] Checking recovery script configurations on 192.168.2.62(192.168.2.62:3306)..
Fri Aug 24 12:29:49 2018 - [info] Executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/mysql1/data --output_file=/etc/mha/app1/save_binary_logs_test --manager_version=0.57 --start_file=mysql-bin.000012
Fri Aug 24 12:29:49 2018 - [info] Connecting to root@192.168.2.62(192.168.2.62:22)..
Creating /etc/mha/app1 if not exists.. ok.
Checking output directory is accessible or not..
ok.
Binlog found at /mysql1/data, up to mysql-bin.000012
Fri Aug 24 12:29:50 2018 - [info] Binlog setting check done.
Fri Aug 24 12:29:50 2018 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
Fri Aug 24 12:29:50 2018 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='root' --slave_host=192.168.2.61 --slave_ip=192.168.2.61 --slave_port=3306 --workdir=/etc/mha/app1 --target_version=5.7.21-log --manager_version=0.57 --relay_log_info=/mysql1/data/relay-log.info --relay_dir=/mysql1/data/ --slave_pass=xxx
Fri Aug 24 12:29:50 2018 - [info] Connecting to root@192.168.2.61(192.168.2.61:22)..
Checking slave recovery environment settings..
Opening /mysql1/data/relay-log.info ... ok.
Relay log found at /mysql1/data, up to node1-relay-bin.000002
Temporary relay log file is /mysql1/data/node1-relay-bin.000002
Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
done.
Testing mysqlbinlog output.. done.
Cleaning up test file(s).. done.
Fri Aug 24 12:29:50 2018 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='root' --slave_host=192.168.2.63 --slave_ip=192.168.2.63 --slave_port=3306 --workdir=/etc/mha/app1 --target_version=5.7.21-log --manager_version=0.57 --relay_log_info=/mysql1/data/relay-log.info --relay_dir=/mysql1/data/ --slave_pass=xxx
Fri Aug 24 12:29:50 2018 - [info] Connecting to root@192.168.2.63(192.168.2.63:22)..
Checking slave recovery environment settings..
Opening /mysql1/data/relay-log.info ... ok.
Relay log found at /mysql1/data, up to node3-relay-bin.000002
Temporary relay log file is /mysql1/data/node3-relay-bin.000002
Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
done.
Testing mysqlbinlog output.. done.
Cleaning up test file(s).. done.
Fri Aug 24 12:29:50 2018 - [info] Slaves settings check done.
Fri Aug 24 12:29:50 2018 - [info]
192.168.2.62(192.168.2.62:3306) (current master)
+--192.168.2.61(192.168.2.61:3306)
+--192.168.2.63(192.168.2.63:3306)
Fri Aug 24 12:29:50 2018 - [info] Checking replication health on 192.168.2.61..
Fri Aug 24 12:29:50 2018 - [info] ok.
Fri Aug 24 12:29:50 2018 - [info] Checking replication health on 192.168.2.63..
Fri Aug 24 12:29:50 2018 - [info] ok.
Fri Aug 24 12:29:50 2018 - [info] Checking master_ip_failover_script status:
Fri Aug 24 12:29:50 2018 - [info] /etc/mha/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.2.62 --orig_master_ip=192.168.2.62 --orig_master_port=3306
IN SCRIPT TEST====/sbin/ifconfig eth0:0 down==/sbin/ifconfig eth0:0 192.168.6.66/24===
Checking the Status of the script.. OK
Fri Aug 24 12:29:50 2018 - [info] OK.
Fri Aug 24 12:29:50 2018 - [warning] shutdown_script is not defined.
Fri Aug 24 12:29:50 2018 - [info] Got exit code 0 (Not master dead).
MySQL Replication Health is OK.
None of slaves can be master. Check failover configuration file or log-bin settings in my.cnf
问题表现
[root@node3 bin]# /etc/mha/mhamanager/bin/masterha_check_repl --conf=/etc/mha/app1/app1.cnf
Fri Aug 24 13:38:34 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Fri Aug 24 13:38:34 2018 - [info] Reading application default configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 13:38:34 2018 - [info] Reading server configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 13:38:34 2018 - [info] MHA::MasterMonitor version 0.57.
Fri Aug 24 13:38:34 2018 - [info] GTID failover mode = 0
Fri Aug 24 13:38:34 2018 - [info] Dead Servers:
Fri Aug 24 13:38:34 2018 - [info] 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 13:38:34 2018 - [info] Alive Servers:
Fri Aug 24 13:38:34 2018 - [info] 192.168.2.61(192.168.2.61:3306)
Fri Aug 24 13:38:34 2018 - [info] 192.168.2.63(192.168.2.63:3306)
Fri Aug 24 13:38:34 2018 - [info] Alive Slaves:
Fri Aug 24 13:38:34 2018 - [info] 192.168.2.63(192.168.2.63:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Fri Aug 24 13:38:34 2018 - [info] Replicating from 192.168.2.61(192.168.2.61:3306)
Fri Aug 24 13:38:34 2018 - [info] Not candidate for the new Master (no_master is set)
Fri Aug 24 13:38:34 2018 - [info] Current Alive Master: 192.168.2.61(192.168.2.61:3306)
Fri Aug 24 13:38:34 2018 - [info] Checking slave configurations..
Fri Aug 24 13:38:34 2018 - [info] read_only=1 is not set on slave 192.168.2.63(192.168.2.63:3306).
Fri Aug 24 13:38:34 2018 - [warning] relay_log_purge=0 is not set on slave 192.168.2.63(192.168.2.63:3306).
Fri Aug 24 13:38:34 2018 - [info] Checking replication filtering settings..
Fri Aug 24 13:38:34 2018 - [info] binlog_do_db= , binlog_ignore_db=
Fri Aug 24 13:38:34 2018 - [info] Replication filtering check ok.
Fri Aug 24 13:38:34 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln364] None of slaves can be master. Check failover configuration file or log-bin settings in my.cnf
Fri Aug 24 13:38:34 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln427] Error happened on checking configurations. at /etc/mha/mhamanager/bin/masterha_check_repl line 48
Fri Aug 24 13:38:34 2018 - [error][/usr/local/share/perl5/MHA/MasterMonitor.pm, ln525] Error happened on monitoring servers.
Fri Aug 24 13:38:34 2018 - [info] Got exit code 1 (Not master dead).
MySQL Replication Health is NOT OK!
解决方法
此报错多在MHA完成master failover后出现 出错原因为没有将主库加回到MHA中.
当主库从node2->node1后 需要手工将node2的主库指向node1
[mysql@node2 ~]$ mysql -S /tmp/mysql1.sock -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> change master to master_host='node1' ,master_port=3306,master_user='dao',master_password='dao',master_log_file='mysql-bin.000005',master_log_pos=154 ;
Query OK, 0 rows affected, 2 warnings (0.03 sec)
mysql> start slave ;
Query OK, 0 rows affected (0.00 sec)
问题验证
[root@node3 bin]# /etc/mha/mhamanager/bin/masterha_check_repl --conf=/etc/mha/app1/app1.cnf
Fri Aug 24 13:48:06 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Fri Aug 24 13:48:06 2018 - [info] Reading application default configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 13:48:06 2018 - [info] Reading server configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 13:48:06 2018 - [info] MHA::MasterMonitor version 0.57.
Fri Aug 24 13:48:06 2018 - [info] GTID failover mode = 0
Fri Aug 24 13:48:06 2018 - [info] Dead Servers:
Fri Aug 24 13:48:06 2018 - [info] Alive Servers:
Fri Aug 24 13:48:06 2018 - [info] 192.168.2.61(192.168.2.61:3306)
Fri Aug 24 13:48:06 2018 - [info] 192.168.2.62(192.168.2.62:3306)
Fri Aug 24 13:48:06 2018 - [info] 192.168.2.63(192.168.2.63:3306)
Fri Aug 24 13:48:06 2018 - [info] Alive Slaves:
Fri Aug 24 13:48:06 2018 - [info] 192.168.2.62(192.168.2.62:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Fri Aug 24 13:48:06 2018 - [info] Replicating from node1(192.168.2.61:3306)
Fri Aug 24 13:48:06 2018 - [info] Primary candidate for the new Master (candidate_master is set)
Fri Aug 24 13:48:06 2018 - [info] 192.168.2.63(192.168.2.63:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Fri Aug 24 13:48:06 2018 - [info] Replicating from 192.168.2.61(192.168.2.61:3306)
Fri Aug 24 13:48:06 2018 - [info] Not candidate for the new Master (no_master is set)
Fri Aug 24 13:48:06 2018 - [info] Current Alive Master: 192.168.2.61(192.168.2.61:3306)
Fri Aug 24 13:48:06 2018 - [info] Checking slave configurations..
Fri Aug 24 13:48:06 2018 - [info] read_only=1 is not set on slave 192.168.2.62(192.168.2.62:3306).
Fri Aug 24 13:48:06 2018 - [warning] relay_log_purge=0 is not set on slave 192.168.2.62(192.168.2.62:3306).
Fri Aug 24 13:48:06 2018 - [info] read_only=1 is not set on slave 192.168.2.63(192.168.2.63:3306).
Fri Aug 24 13:48:06 2018 - [warning] relay_log_purge=0 is not set on slave 192.168.2.63(192.168.2.63:3306).
Fri Aug 24 13:48:06 2018 - [info] Checking replication filtering settings..
Fri Aug 24 13:48:06 2018 - [info] binlog_do_db= , binlog_ignore_db=
Fri Aug 24 13:48:06 2018 - [info] Replication filtering check ok.
Fri Aug 24 13:48:06 2018 - [info] GTID (with auto-pos) is not supported
Fri Aug 24 13:48:06 2018 - [info] Starting SSH connection tests..
Fri Aug 24 13:48:08 2018 - [info] All SSH connection tests passed successfully.
Fri Aug 24 13:48:08 2018 - [info] Checking MHA Node version..
Fri Aug 24 13:48:09 2018 - [info] Version check ok.
Fri Aug 24 13:48:09 2018 - [info] Checking SSH publickey authentication settings on the current master..
Fri Aug 24 13:48:09 2018 - [info] HealthCheck: SSH to 192.168.2.61 is reachable.
Fri Aug 24 13:48:09 2018 - [info] Master MHA Node version is 0.57.
Fri Aug 24 13:48:09 2018 - [info] Checking recovery script configurations on 192.168.2.61(192.168.2.61:3306)..
Fri Aug 24 13:48:09 2018 - [info] Executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/mysql1/data --output_file=/etc/mha/app1/save_binary_logs_test --manager_version=0.57 --start_file=mysql-bin.000005
Fri Aug 24 13:48:09 2018 - [info] Connecting to root@192.168.2.61(192.168.2.61:22)..
Creating /etc/mha/app1 if not exists.. ok.
Checking output directory is accessible or not..
ok.
Binlog found at /mysql1/data, up to mysql-bin.000005
Fri Aug 24 13:48:09 2018 - [info] Binlog setting check done.
Fri Aug 24 13:48:09 2018 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
Fri Aug 24 13:48:09 2018 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='root' --slave_host=192.168.2.62 --slave_ip=192.168.2.62 --slave_port=3306 --workdir=/etc/mha/app1 --target_version=5.7.21-log --manager_version=0.57 --relay_log_info=/mysql1/data/relay-log.info --relay_dir=/mysql1/data/ --slave_pass=xxx
Fri Aug 24 13:48:09 2018 - [info] Connecting to root@192.168.2.62(192.168.2.62:22)..
Checking slave recovery environment settings..
Opening /mysql1/data/relay-log.info ... ok.
Relay log found at /mysql1/data, up to node2-relay-bin.000002
Temporary relay log file is /mysql1/data/node2-relay-bin.000002
Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
done.
Testing mysqlbinlog output.. done.
Cleaning up test file(s).. done.
Fri Aug 24 13:48:10 2018 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='root' --slave_host=192.168.2.63 --slave_ip=192.168.2.63 --slave_port=3306 --workdir=/etc/mha/app1 --target_version=5.7.21-log --manager_version=0.57 --relay_log_info=/mysql1/data/relay-log.info --relay_dir=/mysql1/data/ --slave_pass=xxx
Fri Aug 24 13:48:10 2018 - [info] Connecting to root@192.168.2.63(192.168.2.63:22)..
Checking slave recovery environment settings..
Opening /mysql1/data/relay-log.info ... ok.
Relay log found at /mysql1/data, up to node3-relay-bin.000002
Temporary relay log file is /mysql1/data/node3-relay-bin.000002
Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
done.
Testing mysqlbinlog output.. done.
Cleaning up test file(s).. done.
Fri Aug 24 13:48:10 2018 - [info] Slaves settings check done.
Fri Aug 24 13:48:10 2018 - [info]
192.168.2.61(192.168.2.61:3306) (current master)
+--192.168.2.62(192.168.2.62:3306)
+--192.168.2.63(192.168.2.63:3306)
Fri Aug 24 13:48:10 2018 - [info] Checking replication health on 192.168.2.62..
Fri Aug 24 13:48:10 2018 - [info] ok.
Fri Aug 24 13:48:10 2018 - [info] Checking replication health on 192.168.2.63..
Fri Aug 24 13:48:10 2018 - [info] ok.
Fri Aug 24 13:48:10 2018 - [info] Checking master_ip_failover_script status:
Fri Aug 24 13:48:10 2018 - [info] /etc/mha/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.2.61 --orig_master_ip=192.168.2.61 --orig_master_port=3306
IN SCRIPT TEST====/sbin/ifconfig eth0:0 down==/sbin/ifconfig eth0:0 192.168.6.66/24===
Checking the Status of the script.. OK
Fri Aug 24 13:48:10 2018 - [info] OK.
Fri Aug 24 13:48:10 2018 - [warning] shutdown_script is not defined.
Fri Aug 24 13:48:10 2018 - [info] Got exit code 0 (Not master dead).
MySQL Replication Health is OK.
Getting advisory lock failed on the current master. MHA Monitor runs on the current master.
问题表现
[root@node3 bin]# masterha_master_switch --master_state=alive --conf=/etc/mha/app1/app1.cnf --new_master_host=node2
Fri Aug 24 17:56:42 2018 - [info] MHA::MasterRotate version 0.57.
Fri Aug 24 17:56:42 2018 - [info] Starting online master switch..
Fri Aug 24 17:56:42 2018 - [info]
Fri Aug 24 17:56:42 2018 - [info] * Phase 1: Configuration Check Phase..
Fri Aug 24 17:56:42 2018 - [info]
Fri Aug 24 17:56:42 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Fri Aug 24 17:56:42 2018 - [info] Reading application default configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 17:56:42 2018 - [info] Reading server configuration from /etc/mha/app1/app1.cnf..
Fri Aug 24 17:56:43 2018 - [info] GTID failover mode = 0
Fri Aug 24 17:56:43 2018 - [info] Current Alive Master: 192.168.2.61(192.168.2.61:3306)
Fri Aug 24 17:56:43 2018 - [info] Alive Slaves:
Fri Aug 24 17:56:43 2018 - [info] 192.168.2.62(192.168.2.62:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Fri Aug 24 17:56:43 2018 - [info] Replicating from node1(192.168.2.61:3306)
Fri Aug 24 17:56:43 2018 - [info] Primary candidate for the new Master (candidate_master is set)
Fri Aug 24 17:56:43 2018 - [info] 192.168.2.63(192.168.2.63:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Fri Aug 24 17:56:43 2018 - [info] Replicating from 192.168.2.61(192.168.2.61:3306)
Fri Aug 24 17:56:43 2018 - [info] Not candidate for the new Master (no_master is set)
It is better to execute FLUSH NO_WRITE_TO_BINLOG TABLES on the master before switching. Is it ok to execute on 192.168.2.61(192.168.2.61:3306)? (YES/no): yes
Fri Aug 24 17:56:55 2018 - [info] Executing FLUSH NO_WRITE_TO_BINLOG TABLES. This may take long time..
Fri Aug 24 17:56:55 2018 - [info] ok.
Fri Aug 24 17:56:55 2018 - [info] Checking MHA is not monitoring or doing failover..
Fri Aug 24 17:56:55 2018 - [error][/usr/local/share/perl5/MHA/MasterRotate.pm, ln142] Getting advisory lock failed on the current master. MHA Monitor runs on the current master. Stop MHA Manager/Monitor and try again.
Fri Aug 24 17:56:55 2018 - [error][/usr/local/share/perl5/MHA/ManagerUtil.pm, ln177] Got ERROR: at /usr/local/bin/masterha_master_switch line 53
解决方法
停止MHA Monitor