aim.sh配置一主两从
aim.sh(http://aim.sh) 支持 CentOS 6\7 系列的MySQL 5.6\7.x 二进制包自动安装,并且支持自动配置Slave。
github下载地址:
https://github.com/aimdotsh/aim wget -O aim-master.zip https://github.com/aimdotsh/aim/archive/master.zip
解压 aim-master.zip , 下载mysql免安装版本文件: mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
拷贝至 aim-master/media/
1、安装主库10.255.30.255(master)
修改配置文件vim etc/config
verdir=$(echo $ver|awk -F"." '{print $1"."$2}')
verif7=$(echo $ver|awk -F"." '{print $2}')
slave=0 #是否为Slave库,0 为否, 1 为是
masterip=10.255.30.155 #MySQL主库 IP
masterport=3306 #手动指定 MySQL主库 的端口号,仅slave=1有效
mastersocket=/data/mysql_data/data_3306/mysql.sock #手动指定 MySQL主库 的 sock 文件,仅slave=1有效
slaveip=10.255.30.154 #MySQL Slave 库 IP,仅slave=1有效
ssl_user=root #为了方便配置主从服务器,配置Slave和Master服务器之间免登录的 OS 用户名,通常为root,仅slave=1有效
ssl_passwd='gwm@root.890.' # ssl_user 对应的 OS 密码,仅slave=1有效
PRE_BASEDIR=/data/mysql #MySQL安装的目录
PRE_LOGDIR=/log/mysql_log #MySQL日志目录
PRE_DATADIR=/data/mysql_data # #MySQL数据目录
BASEDIR=$PRE_BASEDIR/mysql${verdir} #MySQL安装的目录带版本号,eg mysql5.6/5.7
DATADIR=${PRE_DATADIR}/data_${PORT} #MySQL数据目录带端口号
MYSQL_DATADIR=$DATADIR
MYSQL_HOME=$BASEDIR
TMPDIR=${PRE_DATADIR}/tmp_${PORT} #MySQL tmp 目录带端口号
LOGDIR=${PRE_LOGDIR}/log_${PORT} #MySQL 日志目录带端口号
执行安装
./aim.sh -v 5.7.28 -p 3306
2、安装从库 10.255.30.154
修改配置文件 vim etc/config
...
slave=1
masterip=10.255.30.155
masterport=3306
mastersocket=/data/mysql_data/data_3306/mysql.sock
slaveip=10.255.30.154
ssl_user=root
ssl_passwd='gwm@root.890.'
.....
执行安装
./aim.sh -v 5.7.28 -p 3306
3、安装从库10.255.30.153
修改配置文件 vim etc/config
...
slave=1
masterip=10.255.30.155
masterport=3306
mastersocket=/data/mysql_data/data_5718/mysql.sock
slaveip=10.255.30.153
ssl_user=root
ssl_passwd='gwm@root.890.'
...
执行安装
./aim.sh -v 5.7.28 -p 3306
4、设置主从(登录三台MySQL,然后执行)
CHANGE MASTER TO MASTER_HOST='10.255.30.155', MASTER_USER='repl',MASTER_PASSWORD='password';
154,153 分别执行
start slave;
至此,MySQL一主两从配置完毕。
参考URL
https://www.jianshu.com/p/cfd9bfd6e7f2
说明:
本地连接MySQL
mysql -paim.sh --socket=/data/mysql_data/data_3306/mysql.sock
mysql aim.sh
配置环境变量
export PATH=$PATH:/data/mysql/mysql5.7/bin
重装时需要删除目录
sudo rm -r /data/mysql*
查询从节点状态
show slave status\G
需要添加同步账号(主节点master登录mysql执行)
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to 'repl'@'%' identified by 'password';
5、mha 安装
MySQL主从架构搭建好之后,安装mha
mha4mysql-node-0.58-0.el7.centos.noarch.rpm
下载地址 :https://github.com/yoshinorim/mha4mysql-node/releases/tag/v0.58
mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
下载地址:https://github.com/yoshinorim/mha4mysql-manager/releases/tag/v0.58
每个节点安装如下脚本:
yum install -y perl-DBD-MySQL
yum install -y perl-Config-Tiny
yum install -y perl-Log-Dispatch
yum install -y perl-Parallel-ForkManager
rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm
rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
在153 slave 节点上编辑配置文件
vim /etc/mha/mha.cnf
[server default]
manager_log=/data/mha/app1/manager.log
manager_workdir=/data/mha/app1/
master_binlog_dir=/log/mysql_log/log_3306/bin_log/
master_ip_failover_script=/etc/mha/master_ip_failover
password=123456
ping_interval=1
remote_workdir=/data/mastermha/app1/
repl_password=password
repl_user=repl
secondary_check_script=masterha_secondary_check -s 10.255.30.154 -s 10.255.30.155
ssh_user=root
user=mha
[server1]
candidate_master=1
hostname=10.255.30.155
[server2]
candidate_master=1
hostname=10.255.30.154
[server3]
hostname=10.255.30.153
no_master=1
添加软连接
ln -s /data/mysql/mysql5.7/bin/mysqlbinlog /usr/local/bin/mysqlbinlog ln -s /data/mysql/mysql5.7/bin/mysql /usr/local/bin/mysql
赋权限
chmod +x /usr/local/bin/master_ip_failover
启动MHA
nohup masterha_manager -conf=/etc/mha/mha.cnf &> /etc/mha/manager.log &
停止MHA
masterha_stop -conf=/etc/mha_master/mha.cnf
查看mha 状态
masterha_check_status -conf=/etc/mha/mha.cnf
vip绑定:
ip addr add 10.255.30.202/24 brd 10.255.30.255 dev ens160 label ens160:1 # /usr/sbin/arping -q -A -c 1 -I ens160 10.255.30.202
vip解绑:
ip addr del 10.255.30.202/24 dev ens160 label ens160:1
参考
http://blog.itpub.net/31480688/viewspace-2214323/
https://blog.csdn.net/Anubis000000/article/details/94335274
https://www.cnblogs.com/keerya/p/7883766.html#_label0
https://www.cnblogs.com/elontian/p/10095199.html
说明
ssh 测试
masterha_check_ssh -conf=/etc/mha/mha.cnf
mysql 复制集群情况监测
masterha_check_repl -conf=/etc/mha/mha.cnf
恢复节点
CHANGE MASTER TO MASTER_HOST='10.255.30.154', MASTER_USER='repl',MASTER_PASSWORD='password'; start slave;
删除dead master 启动方式
nohup masterha_manager --conf=/etc/mha/mha.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /data/mastermha/manager.log 2>&1 &
惠惠街 每天千款优惠劵秒杀