1. 程式人生 > >批量獲取mysql數據庫實例指定參數的值

批量獲取mysql數據庫實例指定參數的值

說明 ash 系統 don 滿足 同時 ech rom 實例

需求:需要對比所有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=$@ 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

批量獲取mysql數據庫實例指定參數的值