標籤:mysql
命令: 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 伺服器工作了多少秒。
My.ini配置 虛擬記憶體
innodb_buffer_pool_size=576M ->128M InnoDB引擎緩衝區
query_cache_size=100M ->32 查詢快取
tmp_table_size=102M ->32M 暫存資料表大小
key_buffer_size=16m ->8M
設定max_connections
命令:show variables like ‘%max_connections%‘
(這個辦法在debian+mysql Ver 12.22 Distrib 4.0.22, for pc-linux (i386)
裡實驗了)
設定辦法是在my.cnf檔案中,添加下面的最後紅色的一行:
--------------------------------------------------------------------------------
[mysqld]
port=3306
#socket=MySQL
skip-locking
set-variable = key_buffer=16K
set-variable = max_allowed_packet=1M
set-variable = thread_stack=64K
set-variable = table_cache=4
set-variable = sort_buffer=64K
set-variable = net_buffer_length=2K
set-variable = max_connections=32000
(在院裡的DELL機器mysql4.0裡的文法不同
max_connecionts=2000
直接這麼寫就好了
)
--------------------------------------------------------------------------------
修改完畢後,重啟MySQL即可。當然,為了確保設定正確,應該查看一下max_connections。
注意:
1、雖然這裡寫的32000。但實際MySQL伺服器允許的最大串連數16384;
2、除max_connections外,上述其他配置應該根據你們系統自身需要進行配置,不必拘泥;
3、添加了最大允許串連數,對系統消耗增加不大。
4、如果你的mysql用的是my.ini作設定檔,設定類似,但設定的格式要稍作變通。
用mysqld --help 可以查看到max_connections 變數。
或者 mysql -uuser -p
後mysql>show variables;
也會看到max_connections 。
下面是修改張老師 的redhat9的方法:
先是mysql -uw01f -p
mysql>show variables;
看到max_connections 為100
mysql>exit;
vi /etc/my.cnf
[mysqld]
set-variable=max_connections=250 #加入這些內容
:wq
/etc/init.d/mysqld restart
好了,行了。
MySQL伺服器的串連數並不是要達到最大的100%為好,還是要具體問題具體分析,下面就對MySQL伺服器最大串連數的合理設定進行了詳盡的分析,供您參考。
我們經常會遇見“MySQL: ERROR 1040: Too many connections”的情況,一種是訪問量確實很高,MySQL伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力,另外一種情況是MySQL設定檔中max_connections值過小:
mysql> show variables like ‘max_connections‘;
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 256 |
+-----------------+-------+
這台MySQL伺服器最大串連數是256,然後查詢一下伺服器響應的最大串連數:
mysql> show global status like ‘Max_used_connections‘;
MySQL伺服器過去的最大串連數是245,沒有達到伺服器串連數上限256,應該沒有出現1040錯誤,比較理想的設定是:
Max_used_connections / max_connections * 100% ≈ 85%
最大串連數占上限串連數的85%左右,如果發現比例在10%以下,MySQL伺服器串連上線就設定得過高了。
本文出自 “xieping_linux” 部落格,請務必保留此出處http://xieping.blog.51cto.com/3715452/1569667
mysql使用者串連數