命令: 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
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可以獲得同樣的效果。