db_hosts.txt 内容如下:
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
connect_db.sh 内容如下:
#!/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