如何实时查看mysql当前连接数
如何實時查看mysql當(dāng)前連接數(shù)?
如何實時查看mysql當(dāng)前連接數(shù)??
1、查看當(dāng)前所有連接的詳細(xì)資料:
./mysqladmin -uadmin -p -h10.140.1.1 processlist
2、只查看當(dāng)前連接數(shù)(Threads就是連接數(shù).):
./mysqladmin ?-uadmin -p -h10.140.1.1 status
、查看當(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)前連接數(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最大連接數(shù):
打開my.ini,修改max_connections=100(默認(rèn)為100)。
今天有一臺mysql服務(wù)器突然連接數(shù)暴增,并且等待進(jìn)程全部被鎖...因為問題解決不當(dāng),導(dǎo)致被罵...OTL
總結(jié):以后要快速定位錯誤,布置解決方案
登錄到mysql客戶端后,使用status命令也能獲得thread連接數(shù)以及當(dāng)前連接的id
或者用
show full processlist?
看一下所有連接進(jìn)程,注意查看進(jìn)程等待時間以及所處狀態(tài) 是否locked
如果進(jìn)程過多,就把進(jìn)程打印下來,然后查看
mysql -e 'show full processlist;' > 111
查找非locked的進(jìn)程,一般就是當(dāng)前執(zhí)行中卡死,導(dǎo)致后面的進(jìn)程排隊的原因。
另外,修改mysql最大連接數(shù)的方法:
編輯MySQL(和PHP搭配之最佳組合)配置文件
my.cnf 或者是 my.ini
在[MySQL(和PHP搭配之最佳組合)d]配置段添加:
max_connections = 1000
保存,重啟MySQL(和PHP搭配之最佳組合)服務(wù)。
然后用命令:
MySQL(和PHP搭配之最佳組合)admin -uroot -p variables?
輸入root數(shù)據(jù)庫賬號的密碼后可看到?
| max_connections | 1000 |
查看MySQL連接數(shù)和當(dāng)前用戶Mysql連接數(shù)
先用管理員身份進(jìn)入mysql提示符。
#mysql -uroot -pxxxx
mysql> show processlist; 可以顯示前100條連接信息 show full processlist; 可以顯示全部。隨便說下,如果用普通賬號登錄,就只顯示這用戶的。注意命令后有分號。
如果我們想查看這臺服務(wù)器設(shè)置。 #vi /etc/my.cnf
set-variable=max_user_connections=30 這個就是單用戶的連接數(shù)
set-variable=max_connections=800 這個是全局的限制連接數(shù)
==========================================================
命令: show processlist;
如果是root帳號,你能看到所有用戶的當(dāng)前連接。如果是其它普通帳號,只能看到自己占用的連接。
show processlist;只列出前100條,如果想全列出請使用show full processlist;
mysql> show processlist;
命令: show status;
命令:show status like '%下面變量%';
Aborted_clients 由于客戶沒有正確關(guān)閉連接已經(jīng)死掉,已經(jīng)放棄的連接數(shù)量。
Aborted_connects 嘗試已經(jīng)失敗的MySQL服務(wù)器的連接的次數(shù)。
Connections 試圖連接MySQL服務(wù)器的次數(shù)。
Created_tmp_tables 當(dāng)執(zhí)行語句時,已經(jīng)被創(chuàng)造了的隱含臨時表的數(shù)量。
Delayed_insert_threads 正在使用的延遲插入處理器線程的數(shù)量。
Delayed_writes 用INSERT DELAYED寫入的行數(shù)。
Delayed_errors 用INSERT DELAYED寫入的發(fā)生某些錯誤(可能重復(fù)鍵值)的行數(shù)。
Flush_commands 執(zhí)行FLUSH命令的次數(shù)。
Handler_delete 請求從一張表中刪除行的次數(shù)。
Handler_read_first 請求讀入表中第一行的次數(shù)。
Handler_read_key 請求數(shù)字基于鍵讀行。
Handler_read_next 請求讀入基于一個鍵的一行的次數(shù)。
Handler_read_rnd 請求讀入基于一個固定位置的一行的次數(shù)。
Handler_update 請求更新表中一行的次數(shù)。
Handler_write 請求向表中插入一行的次數(shù)。
Key_blocks_used 用于關(guān)鍵字緩存的塊的數(shù)量。
Key_read_requests 請求從緩存讀入一個鍵值的次數(shù)。
Key_reads 從磁盤物理讀入一個鍵值的次數(shù)。
Key_write_requests 請求將一個關(guān)鍵字塊寫入緩存次數(shù)。
Key_writes 將一個鍵值塊物理寫入磁盤的次數(shù)。
Max_used_connections 同時使用的連接的最大數(shù)目。
Not_flushed_key_blocks 在鍵緩存中已經(jīng)改變但是還沒被清空到磁盤上的鍵塊。
Not_flushed_delayed_rows 在INSERT DELAY隊列中等待寫入的行的數(shù)量。
Open_tables 打開表的數(shù)量。
Open_files 打開文件的數(shù)量。
Open_streams 打開流的數(shù)量(主要用于日志記載)
Opened_tables 已經(jīng)打開的表的數(shù)量。
Questions 發(fā)往服務(wù)器的查詢的數(shù)量。
Slow_queries 要花超過long_query_time時間的查詢數(shù)量。
Threads_connected 當(dāng)前打開的連接的數(shù)量。
Threads_running 不在睡眠的線程數(shù)量。
Uptime 服務(wù)器工作了多少秒。
======================================================
mysql> show status like 'Threads%';
+-------------------+-------+
| Variable_name???? | Value |
+-------------------+-------+
| Threads_cached??? | 58??? |
| Threads_connected | 57??? |?? ###這個數(shù)值指的是打開的連接數(shù)
| Threads_created?? | 3676? |
| Threads_running?? | 4???? |?? ###這個數(shù)值指的是激活的連接數(shù),這個數(shù)值一般遠(yuǎn)低于connected數(shù)值
+-------------------+-------+
?
Threads_connected 跟show processlist結(jié)果相同,表示當(dāng)前連接數(shù)。準(zhǔn)確的來說,Threads_running是代表當(dāng)前并發(fā)數(shù)
?
這是是查詢數(shù)據(jù)庫當(dāng)前設(shè)置的最大連接數(shù)
mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name?? | Value |
+-----------------+-------+
| max_connections | 1000? |
+-----------------+-------+
?
可以在/etc/my.cnf里面設(shè)置數(shù)據(jù)庫的最大連接數(shù)
[mysqld]
max_connections = 1000
=====================================================
1.show status
?? Threads_connected? 當(dāng)前的連接數(shù)
?? Connections? 試圖連接到(不管是否成功)MySQL服務(wù)器的連接數(shù)。
?? Max_used_connections? 服務(wù)器啟動后已經(jīng)同時使用的連接的最大數(shù)量。
2.set GLOBAL max_connections=連接數(shù);?
?? flush privileges
?
3.修改/etc/my.cnf中的max_connections
4.show processlist?? 顯示當(dāng)前正在執(zhí)行的mysql連接
?
5.mysqladmin -u<user> -p<pwd> -h<host> status
?? 顯示當(dāng)前mysql狀態(tài)
?? Uptime: 13131? Threads: 1? Questions: 22? Slow queries: 0? Opens: 16? Flush tables: 1? Open tables: 1? Queries per second avg: 0.1
轉(zhuǎn)載于:https://blog.51cto.com/29498359/1882678
總結(jié)
以上是生活随笔為你收集整理的如何实时查看mysql当前连接数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows Server 2016虚
- 下一篇: 还有 13 天,苹果就要关上 HTTP