完整版使用Shell脚本在多个服务器同时实现Mysql建表语句和删除表

前言:我们在项目开发过程中可能会遇到类似这样的需求,比如在多个Mysql服务器同时建表语句和删除表,这时候我们肯定不可能一个服务器一个服务器的创建,所以我们要用到强大的Shell脚本来实现。

一、创建表结构

下面例子创建表结构的例子。
在linux环境运行脚本 sh initSql.sh create.sql

#!/usr/bin/env bash
#read -p "Please input your DML SQL:" SQL
SQL=$1

while read LINE
do
    HOST = `echo $LINE | awk -F " " '{print $1}' | awk -F ":" '{print $1}'`
    PORT = `echo $LINE | awk -F " " '{print $1}' | awk -F ":" '{print $2}'`
    DBNAME = `echo $LINE | awk -F " " '{print S2}'`
    USER =  `echo $LINE | awk -F " " '{print S3}'`
    PASS = `echo $LINE | awk -F " " '{print S4}'`


    echo '--------------------------------'
    echo -e "\033[32m $HOST $PORT $DBNAME \033[0m"
    echo "DML SQL File: $SQL"
    mysql -h$HOST -P$PORT -u$USER -p$PASS $DBNAME < $SQL #2 > /dev/null
    if [ $? -ne 0 ];then
            exit
    fi


    echo "数据初始化结束 "
    
done < ./meta.txt

meta.txt可以是多个数据库链接密码等信息例:

127.0.0.1:6338 aplustxn root root
127.0.0.1:6339 aplustxn root root
127.0.0.1:6349 aplustxn root root
127.0.0.1:6350 aplustxn root root

二、删除表结构

下面例子删删除表结构的例子。

在linux环境运行脚本 sh drop.sh drop.sql

#!/usr/bin/env bash

MYSQL = $(which mysql)
AWK = $(which awk)
GREP = $(which grep)

while read LINE
do
     HOST = `echo $LINE | awk -F " " '{print $1}' | awk -F ":" '{print $1}'`
     PORT = `echo $LINE | awk -F " " '{print $1}' | awk -F ":" '{print $2}'`
     DBNAME = `echo $LINE | awk -F " " '{print S2}'`
     USER =  `echo $LINE | awk -F " " '{print S3}'`
     PASS = `echo $LINE | awk -F " " '{print S4}'`

     TABLES = $(mysql -h$HOST -P$PORT -u$USER -p$PASS $DBNAME -e 'show tables' | $AWK '${print $1}' | $GREP -v '^Tables')
     for t in $TABLES
     do
     echo "Drop $t table $MDB database..."
     done
     if [ $? -ne 0 ]; then
            exit
     fi
     echo ""
done <./meta.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

境里婆娑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值