实验:实现 MySQL 主从高可用(MHA)

2020-04-05  本文已影响0人  Simon_Ye

环境:至少四台主机

  1. 准备

    • 禁用selinux
    • 清空iptables
    • 同步时间
  2. 在管理节点上安装两个包:

    • mha4mysql-manager
    • mha4mysql-node
  3. 在被管理节点安装:

    • 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

上一篇 下一篇

猜你喜欢

热点阅读