环境:至少四台主机
- manager
- master
- slave1
- slave2
-
准备
- 禁用selinux
- 清空iptables
- 同步时间
-
在管理节点上安装两个包:
- mha4mysql-manager
- mha4mysql-node
-
在被管理节点安装:
- mha4mysql-node
在管理节点建立配置文件:
~]# vim /etc/mastermha/app1.cnf
[server default]
user=mhauser
password=centos
manager_workdir=/data/mastermha/app1/
manager_log=/data/mastermha/app1/manager.log
remote_workdir=/data/mastermha/app1/
ssh_user=root
repl_user=repluser
repl_password=centos
ping_interval=1
[server1]
hostname=192.168.8.17
candidate_master=1 # 希望将来可以成为 master
[server2]
hostname=192.168.8.27
candidate_master=1 # 希望将来可以成为 master
[server3]
hostname=192.168.8.37
在 Master 配置 /etc/my.cnf
~]# vim /etc/my.cnf
[mysqld]
log_bin
binlog_format=row
server_id=1
skip_name_resolve=on
mysql> SHOW MASTER LOGS;
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'172.16.0.%' IDENTIFIED BY 'centos';
mysql> GRANT ALL ON *.* TO 'mhauser'@'172.16.0.%' IDENTIFIED BY 'centos';
在 Slave 配置 /etc/my.cnf
~]# vim /etc/my.cnf
[mysqld]
log_bin
binlog_format=row
server_id=2 # 不同节点此值各不相同
read_only
relay_log_purge=off
skip_name_resolve=on
mysql> CHANGE MASTER TO
-> MASTER_HOST='MASTER_IP',
-> MASTER_USER='repluser',
-> MASTER_PASSWORD='centos',
-> MASTER_LOG_FILE='mariadb-bin.000001',
-> MASTER_LOG_POS=245;
在所有节点实现相互之间 ssh key 验证
ssh-keygen
ssh-copy-id IP.A.D.DR
Mha 验证和启动
masterha_check_ssh --conf=/etc/mastermha/app1.cnf
:检测
masterha_check_repl --conf=/etc/mastermha/app1.cnf
:检测
masterha_manager --conf=/etc/mastermha/app1.cnf
:启动 mha
排错日志:
/data/mastermha/app1/manager.log
网友评论