作者: 薄荷冰           Linux基础  |  网站架构  |  数据库  |  监控报警  |  shell系列  |  常用工具  |  常见问题


 

导航

 
#!/bin/bash
############################################################
# $Name:         auto_rep_sql.sh 
# $Version:      v1.0
# $Functions:      USGE: auto_rep_sql.sh 'master_sql_file' 'local_mysql_data_path' \
#                                        'local_root_DBPassword' 'master_host' \
#                                        'master_port' 'master_rep_user' 'master_rep_password'
# $Author:       Jeson Li
# $organization: www.lzbbg.cn
# $Create Date:  2017-03-10
# $Mail:         libobin@tom.com
# $Description:  Use Linux local mysql slaves Automatically create Multi slave and synchronize master
############################################################
Tik="\e[5m";Red="\e[31m";Grn="\e[32m";Ylw="\e[33m";Blu="\e[34m";Pup="\e[35m";Rst="\e[0m"
#source /etc/profile
master_sql_file="${1:-/tmp/master.sql}"
local_mysql_data_path="${2:-/mysql_data}"
local_root_DBPassword="${3:-jeson123456}"
master_host="${4:-dbmaster_vip.lzbbg.cn}"
master_port="${5:-3301}"
master_rep_user="${6:-rep}"
master_rep_password="${7:-123456}"
tmp_path="$(dirname ${master_sql_file})/"
if [[ -e ${master_sql_file} && ! -e ${tmp_path}slave-seq.log ]];then
    touch ${tmp_path}slave-seq.log
    for slave_dir_name in $(ls -d ${local_mysql_data_path}/slave*/)
    do
        mysql -uroot -p${local_root_DBPassword} -S ${slave_dir_name}mysql.sock -e "stop slave;"
        mysql -uroot -p${local_root_DBPassword} -S ${slave_dir_name}mysql.sock -e "
        change master to
        master_host='${master_host}',
        master_port=${master_port},
        master_user='${master_rep_user}',
        master_password='${master_rep_password}'\G"
        mysql -uroot -p${local_root_DBPassword} -S ${slave_dir_name}mysql.sock <${master_sql_file}
        mysql -uroot -p${local_root_DBPassword} -S ${slave_dir_name}mysql.sock -e "start slave;"
        sleep 6
        mysql -uroot -p${local_root_DBPassword} -S ${slave_dir_name}mysql.sock -e "show slave status\G">>${slave_dir_name}rep_status.log
    done
else
    echo -e "${Ylw}USGE: $0 { 'master_sql_file' 'local_mysql_data_path' 'local_root_DBPassword' 'master_host' 'master_port' 'master_rep_user' 'master_rep_password'}${Rst}"
    exit 3
fi

 

posted on 2018-12-27 20:27  薄荷冰  阅读(89)  评论(0)    收藏  举报