环境:4台centos7(虚拟机),安装mysql5.6
一、配置文件配置
主服务1:master,配置mysql数据库/etc/my.cnf文件
在[mysqld]下配置
[mysqld]
#服务名称
server-id=1
#需要备份的数据库
binlog-do-db=test
#不需要备份的数据库
binlog-ignore-db=mysql
#二进制日志格式
binlog_format=mixed
#二进制日志名
log-bin=master-bin
#半同步复制
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000
从服务:slave1,slave2,配置mysql数据库/etc/my.cnf文件
在[mysqld]下配置
[mysqld]
#服务名称
server-id=2
#需要备份的数据库
binlog-do-db=test
#不需要备份的数据库
binlog-ignore-db=mysql
#二进制日志格式
binlog_format=mixed
#二进制日志名
log-bin=slave1-bin
# relay_log 配置中继日志
relay_log=slave-relay-bin
# log_slave_updates 表示 slave 将复制事件写进自己的二进制日志
log_slave_updates=1
# 防止改变数据(除了特殊的线程)
read_only=1
#半同步
rpl_semi_sync_slave_enabled=1
MHA配置
在/etc/masterha下创建app.cnf
[server default]
manager_log=/etc/masterha/manager.log
manager_workdir=/etc/masterha/app1
password=123
ping_interval=1
remote_workdir=/mydata/masterha/app1
repl_password=123
repl_user=root
ssh_user=root
user=root
[server2]
candidate_master=1
hostname=10.211.55.9
ssh_port=22
[server3]
candidate_master=1
hostname=10.211.55.10
ssh_port=22
二、mysql参数设置
主服务master数据库执行
- grant replication slave on *.* to 'root'@'从服务ip' identified by '123';(多个执行多次)
- grant all on *.* to 'root'@'10.211.55.%' identified by '123';(授权)
- flush privileges;(刷新授权)
- install plugin rpl_semi_sync_master soname 'semisync_master.so';(安装半同步插件)
- set global rpl_semi_sync_master_timeout=1000;(设置半同步超时)
- set global rpl_semi_sync_master_enabled=1;(开启半同步)
- show variables like '%semi%';(查看半同步状态)
- show master status;(查看主服务状态)
从服务slave1,slave2数据库执行
- CHANGE MASTER TO MASTER_HOST='10.211.55.8',master_user='root',master_password='123',master_port=3306,master_log_file='主服务状态中file字段',master_log_pos=主服务状态中position字段,master_connect_retry=30;
- install plugin rpl_semi_sync_slave soname 'semisync_slave.so';(安装半同步插件)
- set global rpl_semi_sync_slave_enabled=1;(开启半同步)
- show variables like '%semi%';(查看半同步)
- start slave;(开启)
三、MHA安装
manger服务中执行
yum install epel-release
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
yum install perl-Log-Dispatch
yum install perl-Parallel-ForkManager
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm (不能安装在我博客的下载里面下载文件后安装)
rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm (不能安装在我博客的下载里面下载文件后安装)
其他服务执行
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
四、配置ssh面登录
- ssh-keygen -t rsa(不要输入密码,直接回车)
- scp ~/.ssh/authorized_keys root@manager:~/.ssh/ (将公钥复制到manager服务器中)
- scp .ssh/authorized_keys root@其他服务:~/.ssh/ (将authorized_keys复制到其他服务器中)
五、启动
masterha_check_ssh -conf=/etc/masterha/app.cnf (检查配置是否能连接)
masterha_check_repl -conf=/etc/masterha/app.cnf (检查主备功能)
nohup masterha_manager --conf=/etc/masterha/app.cnf > /tmp/mha_manager.log < /dev/null 2>&1 & (开启MHA)
masterha_check_status --conf=/etc/masterha/app.cnf (查看状态)
masterha_stop --conf=/etc/masterha/app.cnf (关闭)m asterha/app.cnfnf=/etc/masterha/app.cnfmasterha_check_ssh -conf=/etc/masterha/app.cnfmasterha_check_ssh -conf=/etc/masterha/app.cnf