1. 程式人生 > >批量獲取mysql資料庫例項指定引數的值

批量獲取mysql資料庫例項指定引數的值

需求:需要對比所有mysql資料庫例項上面的指定引數配置情況,同時需要需要能看到如ip,埠,master or slave,畢竟主和從引數不一樣還是有可能的。

說明:必須要有個資料庫儲存所有是資料庫的資訊,如ip,埠,主從關係等,我這裡恰好都滿足,相關敏感資訊已脫敏。

#!/bin/bash
#
#call method:sh script_name @@mysql系統引數1,@@mysql系統引數2...[以逗號分隔每個引數]
#

#所有資料庫例項通用的賬號/密碼,比如root/root
user=root
password=root

#儲存元資料的資料庫資訊
host=5.5.5.101
port=3306 db=test mysql -u${user} -p${password} -h${host} ${db} 2>/dev/null -Ns > all.txt<<EOF select c.group_name, b.cluster_name, a.db_ip, a.db_port, if(a.is_master = 0, '', '') from db_node a,db_cluster b,db_cluster_group c where a.cluster_id=
b.id and b.group_id=c.id and a.status<>'deleted' order by b.cluster_name; EOF params=[email protected] cat all |while read line do db_cluster_group=`echo $line | awk '{print $1}'` db_cluster_name=`echo $line | awk '{print $2}'` db_ip=`echo $line | awk '{print $3}'` db_port
=`echo $line | awk '{print $4}'` db_role=`echo $line | awk '{print $5}'` mysql -u${user} -p${password} -h$db_ip -P$db_port 2>/dev/null -Nse "select '$db_cluster_group','$db_cluster_name','$db_ip','$db_port','$db_role',$params;" done