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