多台MySQL服务器多个数据库遍历查询数据脚本

脚本目的:解决数据分散存储在多台MySQL服务器上,每台服务器有多个数据库需要遍历查询的痛点。
文件说明:
mysqllist文件记录需要查询的数据库服务器的登录信息,包括IP、端口、账号、密码 这四个信息。
sqllist文件记录的是需要遍历服务器IP及数据据库名称。

使用说明:

需要在一台Centos7系统先安装MySQL客户端。 (我是使用MySQL官网下载对应版本MySQL客户端RPM安装包 mysql-community-client-5.7.36-1.el7.x86_64);
安装完成后执行 bash select.sh 即可,按照提示输入需要的内容,完成后等待结果即可。

#!/bin/bash
cat <<EOF
*********************************************
******    1.使用身份证查询             ******
******    2.使用手机号查询             ******
******    3.自定义编码查询             ******
******    4.全局编号ID查询             ******
******    5.机构全局ID编号查询         ******
******    6.退出                       ******
*********************************************
EOF

read -p "选择编号: " OP

case $OP in
1)
		read -p "输入身份证号:" value
		TJ="id_number ='${value}'"
        echo "身份证查询条件:${TJ}"
        ;;
2)
		read -p "输入手机号:" value
		TJ="mobile_number ='${value}'"
        echo "手机号查询条件:${TJ}"
        ;;
3)
		read -p "输入custom_code=" value
		TJ="custom_code ='${value}'"
        echo "自定义编码查询条件:${TJ}"
        ;;
4)
		read -p "输入global_id=" value
		TJ="global_id ='${value}'"
        echo "全局ID编号查询条件:${TJ}"
        ;;
5)
		read -p "输入organiz_global_id= " value
		TJ="organiz_global_id ='${value}'"
        echo "机构全局ID编号查询条件:${TJ}"
        ;;
6)
        echo "已退出!"
		exit
        ;;
*)
        echo "选择编号错误,程序已退出!"
		exit
esac

for i in $(seq 20 60);do

   host=192.168.3.$i
   port=$( grep "$host" mysqllist.txt | awk '{print $2}' )
   user=$( grep "$host" mysqllist.txt | awk '{print $3}' )
   password=$( grep "$host" mysqllist.txt | awk '{print $4}' )

   for j in $( grep $host sqllist.txt | awk '{print $2}' );do
	 echo "#!/bin/bash" > /tmp/select.sh    
	 echo "mysql -h $host -P $port -u $user -p'$password' -e \"SELECT * FROM ${j}.member_simple_info WHERE ${TJ};\"" >> /tmp/select.sh
     echo " " >> /tmp/select.sh
	 echo "============================192.168.3.$i 查询 ${j} 数据库结果为:============================" > /tmp/select.log
     bash /tmp/select.sh >> /tmp/select.log 2>&1
	 if [[ `grep -v "Using a password on the command line interface can be insecure" /tmp/select.log | wc -l` > 2 ]] ;then
			cat /tmp/select.log
	 fi
	done
done

 

备份下载地址:select.tar.gz

 

版权声明:
作者:WaterBear
链接:https://l-t.top/2145.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录