#!/bin/bash
SRC_PWD=`pwd`
WORK_PATH="/mysql/mha"
CONF_PATH="/etc/mha"
MANAGER='192.168.0.4' #管理机IP
SERVER1='192.168.0.2'
SERVER2='192.168.0.3'
SERVER3='192.168.0.4'
MYSQLPATH='/mysql'
MYSQL_REPL_USER='repl'
MYSQL_REPL_PASSWORD='123'
MANAGER_USER='mha'
MANAGER_PASSWORD='mha'
SSH_USER='root'
MYSQL_USER='root'
MYSQL_PASSWORD='123'
RED='echo -e"\e[2;31m '
GREEN='echo -e"\e[1;32m '
END=' \e[0m"'
install_env(){
yum install -y perl-DBD-MySQL
ln -s ${MYSQLPATH}/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog
ln -s ${MYSQLPATH}/mysql/bin/mysql /usr/bin/mysql
host=`hostname -I |awk -F . '{print $4}'`
ip=`echo ${MANAGER} |awk -F . '{print $4}'`
[ ${ip} == ${host} ] && yum install -y perl-Config-Tiny perl-Log-Dispatch perl-Parallerl-ForkManager perl-Time-HiRes epel-release >/dev/null
[ -d /etc/mha ] && { ${RED} "配置文件目录已存在!" ${END} ; return 200; }
mkdir -p /etc/mha/
[ -d /mysql/mha ] && { ${RED} "工作目录已存在!" ${END} ; return 201; }
mkdir -p /mysql/mha/log
cp -a ${SRC_PWD}/conf/script /mysql/mha/
cp -a ${SRC_PWD}/conf/mha.sh /etc/profile.d/
source /etc/profile.d/mha.sh
return 100;
}
install_conf() {
cat >/etc/mha/mha.cnf << EOF
[server default]
manager_log=${WORK_PATH}/log/manager
manager_workdir=${WORK_PATH}
master_binlog_dir=/mysql/binlog-master
master_ip_failover_script=${WORK_PATH}/script/master_ip_failover_script
user=${MANAGER_USER}
password=${MANAGER_PASSWORD}
ping_interval=2
repl_password=${MYSQL_REPL_PASSWORD}
repl_user=${MYSQL_REPL_USER}
ssh_user=${SSH_USER}
[server1]
hostname=${SERVER1}
master_binlog_dir=/mysql/binlog-master
port=3306
[server2]
candidate_master=2
check_repl_delay=0
hostname=${SERVER2}
master_binlog_dir=/mysql/binlog-master
port=3306
[server3]
hostname=${SERVER3}
master_binlog_dir=/mysql/binlog-master
port=3306
EOF
}
config_mysql(){
MASTER_NET=echo ${SERVER1} |awk -F . '{print $1"."$2"."$3".%"}'
mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e "grant all on *.* to ${MANAGER_USER}@'${MASTER_NET}' identified by '${MANAGER_PASSWORD}'" &> /dev/null
}
ssh_config(){
$GREEN "启动前请确保SSH互通!"
read -p "请输入(yse|no)" yn
if [[ "${yn}" == "yes" ]]; then
$GREEN "您输入的是yes!" ${END}
return 100
else
$RED "您输入的是no,安装脚本退出!" ${END}
exit 2
fi
}
##提前做好主从复制,修改自己的IP