天天看點

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, 這個數值對于并發連接配接很多的資料庫應用是遠遠不夠的,當連接配接請求大于預設連接配接數後,就會出現無法連接配接資料庫的錯誤,是以我們需要把它适當調大一些, 有兩種辦法可以修改最大連接配接數,一種是修改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

- --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

然後關閉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},

把它改為:

存盤退出,然後./configure ;make;make install可以獲得同樣的效果。

繼續閱讀