查看MySQL連接數(shù)的實(shí)際操作流程
以下的文章主要介紹的是正確查看MySQL連接數(shù)的實(shí)際操作,同時(shí)也對(duì)查看MySQL連接數(shù)的實(shí)際應(yīng)用代碼的詳細(xì)解析,以下就是MySQL連接數(shù)的實(shí)際操作具體方案的描述,希望在你今后的學(xué)習(xí)中會(huì)有所幫助。
- MySQLadmin -uiseeuon -pmtcera2009 processlist -v
看一下當(dāng)前占CPU高的時(shí)候哪些語(yǔ)句在執(zhí)行然后再對(duì)那些語(yǔ)句添加索引,一般都會(huì)降下來的
1、查看當(dāng)前所有連接的詳細(xì)資料:
- MySQLadmin -uroot -proot processlist
- D:\MySQL\bin>MySQLadmin -uroot -proot processlist
- +-----+------+----------------+---------+---------+------+-------+------------------+
- | Id | User | Host | db | Command | Time | State | Info |
- +-----+------+----------------+---------+---------+------+-------+------------------+
- | 591 | root | localhost:3544 | bbs | Sleep | 25 | | |
- | 701 | root | localhost:3761 | | uery | 0 | | show processlist |
- +-----+------+----------------+---------+---------+------+-------+------------------+
2、只查看當(dāng)前MySQL連接數(shù)(Threads就是連接數(shù).):
- MySQLadmin -uroot -proot status
- D:\MySQL\bin>MySQLadmin -uroot -proot status
- Uptime: 2102 Threads: 3 Questions: 15531 Slow queries: 0 Opens: 0 Flush tab
- les: 1 Open tables: 61 Queries per second avg: 7.389
3、修改MySQL最大MySQL連接數(shù):
打開my.ini,修改max_connections=100(默認(rèn)為100)。
命令: show processlist;
如果是root帳號(hào),你能看到所有用戶的當(dāng)前連接。如果是其它普通帳號(hào),只能看到自己占用的連接。
how processlist;只列出前100條,如果想全列出請(qǐng)使用show full processlist;
4.MySQLadmin extended-status
原來看到有人在博客上寫監(jiān)控服務(wù)器的腳本,出現(xiàn)問題就發(fā)郵件,手機(jī)短信報(bào)警的文章,感覺很神奇。過了一段時(shí)間學(xué)習(xí)的知識(shí)慢慢多了,現(xiàn)
在回想起來其實(shí)也很簡(jiǎn)單。基本思路就是用shell寫命令去檢測(cè)服務(wù)器(這里說的服務(wù)器可以有很多種,比如MySQL,apache,nginx等),然后判
斷返回的狀態(tài),失敗的話就發(fā)郵件報(bào)警。最后把這個(gè)腳本加入到cron程序中讓它定期運(yùn)行,這樣就可以檢測(cè)MySQL連接數(shù)的健康狀態(tài)了。下面是我寫的
一個(gè)簡(jiǎn)單的腳本:
- # test.sh
- #!/bin/bash
#指定要調(diào)用的shell解釋器
- /usr/bin/MySQLadmin -uroot ping &>/dev/null
#這句是用MySQLadmin命令,ping參數(shù)是檢測(cè)MySQL服務(wù)器的健康狀態(tài),如果MySQL連接數(shù)進(jìn)程掛掉則會(huì)報(bào)錯(cuò),&>/dev/null是把錯(cuò)誤重定向,讓錯(cuò)誤信
息不要在屏幕上輸出來
if [ -z $? ] #關(guān)鍵在$?這個(gè)變量 ,它是代表上一條命令執(zhí)行后的退出狀態(tài),如果是0的話表示成功,其他 # 非0
參數(shù)表示失敗,另外這是在shell中的if語(yǔ)法,-z參數(shù)判斷條件是否為0,
then
# do nothing ,$?為0的話表示執(zhí)行成功,MySQL進(jìn)程健康
- else
- mail -s "MySQL server cracked down" jackywdx@163.com
- fi
這就是一個(gè)最簡(jiǎn)單的檢測(cè)腳本,別忘了要運(yùn)行chmod +x test.sh讓它有執(zhí)行的屬性。判斷MySQL連接數(shù)進(jìn)程是否健康其實(shí)還用很多方法,比如用ps aux
v的時(shí)候要注意本機(jī)要啟動(dòng)了一個(gè)mail服務(wù)器才行,如sendmail或者qmail都可以,如果沒有安裝可以這里有關(guān)sendmail架設(shè)的文章,郵件服務(wù)器之Sendmail應(yīng)用專題--IT168服務(wù)器頻道
下面是把這個(gè)腳本放入cron,讓它定期去執(zhí)行,命令如下:
crontab -e 敲回車,進(jìn)入一個(gè)文本編輯頁(yè)面,放入下面一條
- */5 * * * * /root/test.sh &>/dev/null
再退出保存即可(不會(huì)退出的話按住shift鍵,再按再次Z即可 ^_^)
上面的命令是讓cron每隔5分鐘運(yùn)行一次test.sh腳本。具體的參數(shù)自己上網(wǎng)查查啦。這只是一個(gè)很簡(jiǎn)單的監(jiān)控腳本,更具體一點(diǎn)就是如果發(fā)現(xiàn)進(jìn)程掛掉,則要去日志文件查找錯(cuò)誤信息,這些就比較麻煩了一點(diǎn),要用到sed或者awk的來提取出錯(cuò)的信息,以后有機(jī)會(huì)再試試寫。
【編輯推薦】