Mysql 查看鏈接數,狀態 最大併發數

-- show variables like '%max_connections%'; 查看最大鏈接數


set global max_connections=1000 從新設置html

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



MySQL服務器的線程數須要在一個合理的範圍以內,這樣才能保證MySQL服務器健康平穩地運行。Threads_created表示建立過的線程數,經過查看Threads_created就能夠查看MySQL服務器的進程狀態。
1. mysql> show global status like 'Thread%';
2. +-------------------+-------+
3. | Variable_name | Value |
4. +-------------------+-------+
5. | Threads_cached | 46 |
6. | Threads_connected | 2 |
7. | Threads_created | 570 |
8. | Threads_running | 1 |
9. +-------------------+-------+
若是咱們在MySQL服務器配置文件中設置了thread_cache_size,當客戶端斷開以後,服務器處理此客戶的線程將會緩存起來以響應下一個客戶而不是銷燬(前提是緩存數未達上限)。
Threads_created表示建立過的線程數,若是發現Threads_created值過大的話, 代表MySQL服務器一直在建立線程,這也是比較耗資源,能夠適當增長配置文件中thread_cache_size值,查詢服務器
thread_cache_size配置:
1. mysql> show variables like 'thread_cache_size';
2. +-------------------+-------+
3. | Variable_name | Value |
4. +-------------------+-------+
5. | thread_cache_size | 64 |
6. +-------------------+-------+
示例中的服務器仍是挺健康的。


1.show statusmysql

   Threads_connected  當前的鏈接數
   Connections  試圖鏈接到(不論是否成功)MySQL服務器的鏈接數。
   Max_used_connections  服務器啓動後已經同時使用的鏈接的最大數量。linux


2.set GLOBAL max_connections=鏈接數; 
   flush privilegessql

 

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.1app


   mysqladmin -u<user> -p<pwd> -h<host> extended-statussocket

   顯示mysql的其餘狀態

+-----------------------------------+----------+
| Variable_name                     | Value    |
+-----------------------------------+----------+
| Aborted_clients                   | 0        |
| Aborted_connects               | 1        |
| Binlog_cache_disk_use       | 0        |
| Binlog_cache_use               | 0        |
| Bytes_received                   | 1152   |
| Bytes_sent                         | 10400 |
| Com_admin_commands      | 0        |
| Com_assign_to_keycache  | 0        |

.............................................................

.............................................................

| Threads_cached                 | 2        |
| Threads_connected            | 1        |
| Threads_created                | 3        |
| Threads_running                | 1        |
| Uptime                                | 13509    |
| Uptime_since_flush_status | 13509    |
+-----------------------------------+----------+





令: 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。

注意: 
一、雖然這裏寫的32000。但實際MySQL服務器容許的最大鏈接數16384; 
二、除max_connections外,上述其餘配置應該根據大家系統自身須要進行配置,沒必要拘泥; 
三、添加了最大容許鏈接數,對系統消耗增長不大。 
四、若是你的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, 這個數值對於併發鏈接不少的數據庫應用是遠遠不夠的,當鏈接請求大於默認鏈接數後,就會出現沒法鏈接數據庫的錯誤,所以咱們須要把它適當調大一些, 有兩種辦法能夠修改最大鏈接數,一種是修改safe_mysqld,另外一種是直接修改原代碼並從新編譯。下面咱們就分別介紹這兩種方法:

1.修改safe_mysqld 
找到safe_mysqld編輯它,找到mysqld啓動的那兩行,在後面加上參數 :

-O max_connections=1000

例如 :(其中前面有---的是原來的內容,而+++是修改過之後的) 
--- safe_mysqld.orig Mon Sep 25 09:34:01 2000 
+++ safe_mysqld Sun Sep 24 16:56:46 2000 
@@ -109,10 +109,10 @@ 
if test "$#" -eq 0 
then 
nohup $ledir/mysqld --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR / 
- --skip-locking >> $err_log 2>&1 
+ --skip-locking -O max_connections=1000 >> $err_log 2>&1 
else 
nohup $ledir/mysqld --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR / 
- --skip-locking "$@" >> $err_log 2>&1 
+ --skip-locking "$@" -O max_connections=1000 >> $err_log 2>&1 
fi 
if test ! -f $pid_file # This is removed if normal shutdown 
then 
而後關閉mysql重啓它,用 
/mysqladmin所在路徑/mysqladmin -uroot -p variables 
輸入root數據庫帳號的密碼後可看到 
| max_connections | 1000 | 
即新改動已經生效。

2.修改原代碼

解開MySQL的原代碼,進入裏面的sql目錄修改mysqld.cc找到下面一行:

{ "max_connections", (long*) &max_connections,1000,1,16384,0,1},

把它改成:

{ "max_connections", (long*) &max_connections,1000,1,16384,0,1},

存盤退出,而後./configure ;make;make install能夠得到一樣的效果。

 

文章來源: Mysql 查看鏈接數,狀態 最大併發數

相關文章
相關標籤/搜索