首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL 命令行多实例连接界面脚本

MySQL 命令行多实例连接界面脚本

作者头像
用户1148526
发布2023-10-14 09:57:38
发布2023-10-14 09:57:38
6310
举报
文章被收录于专栏:Hadoop数据仓库Hadoop数据仓库

1. 创建实例列表文件

        db_hosts.txt 内容如下:

代码语言:javascript
复制
no name  主库ip       从库ip       从库2ip
1. 实例1 172.31.7.74  172.31.7.80  172.31.7.234
2. 实例2 172.31.7.52  172.31.7.120 172.31.7.235
3. 实例3 172.31.7.132 172.31.7.123 172.31.7.226
4. 实例4 172.31.7.124 172.31.7.95  172.31.7.247
5. 实例5 172.31.7.133 172.31.7.102 172.31.7.228
6. 实例6 172.31.7.108 172.31.7.125 172.31.7.251
7. 实例7 172.31.7.114 172.31.7.83  172.31.7.185
8. 实例8 172.31.7.84  172.31.7.77  172.31.7.217

2. 创建连接界面脚本

        connect_db.sh 内容如下:

代码语言:javascript
复制
#!/bin/bash

db_hosts=~/db_hosts.txt
ary=(1 2 3 4 5 6 7 8) 
role=(M m S s B b)

echo "============= hosts ============"
cat $db_hosts | column -t

while [ -z "$ARG" ]
do
    echo "pls select:"
    read ARG
done

if [[ "${ary[@]}" =~ "$ARG" ]] ; then
    ARG=$[$ARG+1]
    line=$(sed -n ''"$ARG"','"$ARG"'p' $db_hosts)

    while [ -z "$ROLE" ]
    do
        echo "connect master (M|m) or slave (S|s) or bigdata (B|b):"
        read ROLE
    done

    if [[ "${role[@]}" =~ "$ROLE" ]] ; then
        node=(echo ${line})
        if [[ "$ROLE" = "M" || "$ROLE" = "m" ]] ; then
            echo ">>> connect ${node[3]}";echo
            mysql -uroot -p123456 -h${node[3]} -P3306
        elif [[ "$ROLE" = "S" || "$ROLE" = "s" ]] ; then
            echo ">>> connect ${node[4]}";echo
            mysql -uroot -p123456 -h${node[4]} -P3306
        elif [[ "$ROLE" = "B" || "$ROLE" = "b" ]] ; then
            echo ">>> connect ${node[5]}";echo
            mysql -uroot -p123456 -h${node[5]} -P3306
        fi
    else
        echo "Invalid input: $ROLE"
        exit
    fi
else
    echo "select error!"
    exit
fi

3. 效果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 1. 创建实例列表文件
  • 2. 创建连接界面脚本
  • 3. 效果
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档