第一部分 把三个节点的主从关系配好 1.每个节点安装 mysql 或者 mariadb 数据库 2.配置主节点也就是写的节点 ,配置如下 vim /etc/my.cnf 在[mysqld]端添加代码

	 log_bin=log_bin
	 #开启二进制日志,主从复制就是基于这个日志复制的
   server_id=14
#ID每个节点必须唯一

3.配置从节点 vim /etc/my.cnf 在[mysqld]端添加代码

	 server_id=19
   relay_log=relay_log
	 #开启中继日志,从节点就是基于这个日志完成写入的
   relay_log_index=relay_log.index

4.开启主节点,在主节点上运行 mysql -uroot -e 'show master status;' 记录下二级制日志 5. 进入mysql 运行 grant replication slave on *.* to 'rep'@'192.168.%.%' identified by '123456'; #创建具有复制权限的账号,账号rep,密123456,作用范围192.168.0.0 6.进入mysql ,配置从节点的连接配置

   MariaDB [(none)]> CHANGE MASTER TO
    -> MASTER_HOST='192.168.0.14',
    -> MASTER_USER='rep',
    -> MASTER_PASSWORD='123456', 
    -> MASTER_LOG_FILE='log_bin.000003',
    -> MASTER_LOG_POS=235; 
	配置完成运行下面两个命令启动同步
	slave start; ##启动同步引擎
show slave status\G; 查看引擎状态
![](https://s1.51cto.com/images/blog/201909/04/93930b1a4d6217727f1b77daa1b054bd.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

画圈的两个,为yes就成功了,不为yes 检查网络状态,防火墙和selinux是否关闭,还有一个从节点一样的配置改下IP即可。 7.做MHA实验还要关闭从服务器的中继日志自动删除功能 set global relay_log_purge = OFF; show variables like '%relay_log_purge%' 第二部分 MHA配置 1.现在安装 yum install epel-release.noarch #先安装eprl 源 yum install mha4mysql-manager-0.56-0.el6.noarch.rpm -y --skip-broken #安装控制主机 2.新建配置文件vim /etc/mha/app1.cnf

[server default]
#刚才授权的mysql管理用戶名
user=root
password=123456
manager_workdir=/mha
#ssh免密钥登录的帐号名
ssh_user=root
#mysql复制帐号,用来在主从机之间同步二进制日志等
repl_user=rep
repl_password=123456
#ping间隔,用来检测master是否正常
ping_interval= 1


[server1]
hostname=192.168.0.14
port=3306

[server2]
candidate_master=1
#设置成候选主机,即使同步的数据不是从主机当中最新的那个
check_repl_delay=0
#默认情况下如果一个slave落后master 100M的relay logs的话,MHA将不会选择该slave作为一个新的master,因为对于这个slave的恢复需要花费很长时间,通过设置check_repl_delay=0,MHA触发切换在选择一个新的master的时候将会忽略复制延时。
hostname=192.168.0.16
port=3306

[server3]
hostname=192.168.0.19
port=3306
  1. 检查ssh连接 #显示全部通过即可 4.检查整个复制环境状态 masterha_check_repl --conf=/etc/mha/app1.cnf 5.检查软件开启状态 masterha_check_status --conf=/etc/mha/app1.cnf 显示"NOT_RUNNING",这代表MHA监控没有开启。执行下面的命令后台启动MHA。 nohup masterha_manager --conf=/etc/mha/app1.cnf #开启mha 自此已经完成了mha一小部分功能了,这软件过于复杂,且切换过去,主节点上线还得手动还原配置,麻烦,不如配置个双主模式,前面用个vip,备份主的平时不许写,master挂了以后顶上上去,只要配置了半同步效果应该会比mha好使。