zoukankan      html  css  js  c++  java
  • mysql配置主主脚本

    脚本说明:

    1.可用于建立mysql数据库主主(主从)

    2.可以用于快速恢复mysql数据库主主(主从)

    3.可用于查看mysql数据库同步状态

    4.可用于mysql数据库用户查看

    先决条件:

    1.mysql数据库已经安装好,root账号开启远程登陆权限或有其它有远程管理权限的账号

    2.两台mysql已经开启日志(log-bin=mysql-bin),且server-id不一致(分别为server-id=1,server-id=2)

    3.脚本可以在任意一台安装有mysql客户端的电脑执行(可以连接到主备mysql数据库)

    4.两台mysql数据库完全一致,包括版本和存储的数据

    脚本:

    #!/bin/bash
    #mysql管理用户名及密码
    user=root
    passwd=123456

    #mysql用于同步的用户名及密码
    slaveUser=slave
    slavePasswd=123456

    #创建slave用户用于同步
    slave_create()
    {
    mysql -u$user -p$passwd -h$1 <<EOF
    grant replication slave on *.* to "$slaveUser"@'%' identified by "$passwd";
    flush privileges;
    EOF
    }

    #查看mysql中的用户
    user_status()
    {
    mysql -u$user -p$passwd -h$1 -e "select host,user from mysql.user"
    }

    #开启主从
    #参数说明:$1为主服务器ip,$2为从服务器ip
    slave_start()
    {
    #获取主服务器master信息
    file=`mysql -u$user -p$passwd -h$1 -e "show master status"|grep mysql|awk '{print $1}'`
    position=`mysql -u$user -p$passwd -h$1 -e "show master status"|grep mysql|awk '{print $2}'`
    #开启主从
    mysql -u$user -p$passwd -h$2 <<EOF
    stop slave;
    reset slave all;
    change master to
    master_host="$1",
    master_user="$slaveUser",
    master_password="$slavePasswd",
    master_port=3306,
    master_log_file="$file",
    master_log_pos=$position,
    master_connect_retry=30;
    start slave;
    EOF
    }

    #输出对应mysql服务器slave同步状态
    slave_status()
    {
    echo "$1 slave status:"
    mysql -u$user -p$passwd -h$1 -e "show slave statusG"|grep Running:
    }

    #停止slave,并输出状态
    slave_stop()
    {
    echo "$1 slave is stopping..."
    mysql -u$user -p$passwd -h$1 -e "stop slave"
    }

    使用相关功能直接调用函数,如两台新的mysql服务器建立主主,调用过程:

    ip1=192.168.100.190
    ip2=192.168.100.191

    #create slave user
    slave_create $ip1
    slave_create $ip2

    #check all mysql user
    #user_status $ip1
    #user_status $ip2

    #start slave
    slave_start $ip1 $ip2
    slave_start $ip2 $ip1

    #check slave status
    slave_status $ip1;
    slave_status $ip2;

    #stop slave

    #slave_stop $ip1;
    #slave_stop $ip2;

  • 相关阅读:
    AGC 018E.Sightseeing Plan(组合 DP)
    BZOJ.4767.两双手(组合 容斥 DP)
    AGC 001E.BBQ Hard(组合 DP)
    洛谷.3960.列队(线段树/树状数组)
    Codeforces Round #514 (Div. 2)
    10.4 正睿国庆集训测试 青岛
    Codeforces.264E.Roadside Trees(线段树 DP LIS)
    BZOJ.4653.[NOI2016]区间(线段树)
    Ansible安装部署以及常用模块详解
    Linux系统诊断必备技能之二:tcpdump抓包工具详解
  • 原文地址:https://www.cnblogs.com/szy2018/p/12221781.html
Copyright © 2011-2022 走看看