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;

  • 相关阅读:
    1094. Car Pooling
    121. Best Time to Buy and Sell Stock
    58. Length of Last Word
    510. Inorder Successor in BST II
    198. House Robber
    57. Insert Interval
    15. 3Sum java solutions
    79. Word Search java solutions
    80. Remove Duplicates from Sorted Array II java solutions
    34. Search for a Range java solutions
  • 原文地址:https://www.cnblogs.com/szy2018/p/12221781.html
Copyright © 2011-2022 走看看