想知道當(dāng)前MySQL的連接信息,最直觀的方法是看MySQL的processlist,如果希望看到完整的SQL,可以執(zhí)行show full processlist,或者直接查information_schema中的processlist這個(gè)表。當(dāng)MySQL中連接數(shù)比較少的時(shí)候,還能夠人肉分析出來(lái),可是如果連接數(shù)比較多,那就很難考肉眼看processlist去分析問(wèn)題了。
最開(kāi)始,我們的做法是寫(xiě)個(gè)腳本,用MySQL客戶(hù)端在命令行登錄MySQL,并執(zhí)行show full processlist,然后將輸出作為一個(gè)文本分析。本來(lái)這種實(shí)現(xiàn)方式在MySQL5.5和MariaDB上運(yùn)行得很好,可是,當(dāng)在MySQL5.6環(huán)境上運(yùn)行時(shí),出現(xiàn)了問(wèn)題,在控制臺(tái)輸出中會(huì)多出一行Warning: Using a password on the commandline interface can be insecure,相信很多運(yùn)行orzdba的同學(xué)也遇到過(guò)這種情況。這個(gè)是MySQL5.6本身的安全提示,輸入明文密碼時(shí),沒(méi)有辦法避免,阿里的同學(xué)還分享過(guò)他們?yōu)榇俗鲞^(guò)源碼改造,因?yàn)樗麄兒芏嗳蝿?wù)都依賴(lài)于命令行執(zhí)行MySQL命令并捕獲結(jié)果。