###mysql主从复制###
这里需要一主两从三台服务器192.168.10.177(主),192.168.10.178(主备),192.168.10.179(从)
更改master my.cnf
log_bin = mysql-bin
server_id = 1
更改主备slave my.cnf
log_bin = mysql-bin
server_id = 2
更改slave my.cnf
log_bin = mysql-bin
server_id = 3
这三台服务器依次授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'admin@157' WITH GRANT OPTION;
配置主从复制
在主服务器上查看日志状态
show master status;
在主备和从服务器配置复制
change master to master_host='192.168.10.177',
master_user='root',
master_pass word='admin@157',
master_port=3306,
master_log_file='mysqlbin.000001',
master_log_pos=120;
在主备和从服务器启动slave,并查看状态
start slave;
show slave status\G
IO和SQL进程显示为yes则正常
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
###服务器配置###
主机名修改,以控制节点示范
修改/etc/sysconfig/network
HOSTNAME=mha176
/etc/hosts
127.0.0.1 mha176
192.168.10.176 mha76
192.168.10.177 master177
192.168.10.178 slave178
192.168.10.179 slave179
ssh免密登录,以控制节点示范
ssh-keygen -t rsa
...一路回车 ...
ssh-copy-id slave的IP或主机名
ssh-copy-id 192.168.10.177
ssh-copy-id 192.168.10.178
ssh-copy-id 192.168.10.179
###mha安装###
用root用户在四个节点执行下面的操作192.168.10.176(控制节点),192.168.10.177(主),192.168.10.178(主备),192.168.10.179(从)
安装一个epel源
centos6
wget -O /etc/yum.repos.d/epel-6.repo http://mirrors.aliyun.com/repo/epel-6.repo
centos7
wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
主从都安装好依赖包
yum install -y perl perl-DBI perl-IO-Socket-SSL
yum install -y perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
下载mha安装包
下载地址:https://github.com/yoshinorim/mha4mysql-manager/wiki/Downloads
在主、主备、从上用root用户执行下面的操作。
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
用root用户在控制节点安装
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm
###mha配置###
创建配置文件/etc/masterha/app1.cnf,内容如下
[server default]
manager_log=/data/masterha/app1/manager.log
manager_workdir=/data/masterha/app1
master_binlog_dir=/usr/local/mysql/data
password=admin@157
ping_interval=1
remote_workdir=/data/masterha/app1
repl_password=admin@157
repl_user=root
ssh_user=root
user=root
[server1]
hostname=192.168.10.177
port=3306
[server2]
candidate_master=1
check_repl_delay=0
hostname=192.168.10.178
port=3306
[server3]
hostname=192.168.10.179
port=3306
检查主机之间ssh通讯状态,状态必须为All SSH connection tests passed successfully.才能进行后面操作;
masterha_check_ssh --conf=/etc/masterha/app1.cnf
检查整个复制环境,状态必须为MySQL Replication Health is OK.才能进行后面操作
masterha_check_repl --conf=/etc/masterha/app1.cnf
检查mha manager的状态
masterha_check_status --conf=/etc/masterha/app1.cnf
启动
nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &
###主库、主备绑定VIP###
安装keepalived
yum -y install keepalived
更改配置文件keepalived.conf,以主库为例
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_script Monitor_mysql {
script "/usr/local/monitor_mysql.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
mcast_src_ip 192.168.10.177
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
Monitor_mysql
}
virtual_ipaddress {
192.168.10.173
}
}
创建mysql监控脚本,并更改权限
touch /usr/local/monitor_mysql.sh
#!/bin/bash
pid=`ps -ef |grep mysql |grep -v grep | grep -v monitor_mysql.sh | awk '{printf $2}'`
if [ ! -n "$pid" ];then
service mysql start
sleep 5
pid=`ps -ef |grep mysql |grep -v grep | grep -v monitor_mysql.sh | awk '{printf $2}'`
if [ ! -n "$pid" ];then
service keepalived stop
service network restart
fi
fi
更改权限
chmod u+x /usr/local/monitor_mysql.sh
未完待续...