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;

  • 相关阅读:
    CMD 常用命令
    CMD 删除脚本
    HAproxy 介绍
    HAproxy 配置参数详解
    HAproxy 源码包安装
    lvs keepalived 安装配置详解【转】
    linux下负载均衡(LVS安装与配置)【转】
    CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡【转】
    Linux负载均衡软件LVS之二(安装篇)[转]
    Mysql + keepalived 实现双主热备读写分离【转】
  • 原文地址:https://www.cnblogs.com/szy2018/p/12221781.html
Copyright © 2011-2022 走看看