MySQL查看最大連接數和修改最大連接數
1、查看最大連接數
show variables like '%max_connections%';
2、修改最大連接數
set GLOBAL max_connections = 200;
? 以下的文章主要是向大家介紹的是MySQL最大連接數的修改,我們大家都知道MySQL最大連接數的默認值是100, 這個數值對于并發連接很多的數據庫的應用是遠不夠用的,當連接請求大于默認連接數后,就會出現無法連接數據庫的錯誤,因此我們需要把它適當調大一些。在使 用MySQL數據庫的時候,經常會遇到這么一個問題,就是“Can not connect to MySQL server. Too many connections”-mysql 1040錯誤,這是因為訪問MySQL且還未釋放的連接數目已經達到MySQL的上限。通常,mysql的最大連接數默認是100, 最大可以達到16384。
?? 常用的修改最大連接數的最常用的兩種方式如下:
?? 第一種:命令行查看和修改最大連接數(max_connections)。
?
>mysql?-uuser?-ppassword(命令行登錄MySQL)
????
mysql>show?variables?
like
?'max_connections'
;(查可以看當前的最大連接數)
????
msyql>
set
?global
?max_connections=1000;(設置最大連接數為1000,可以再次查看是否設置成功)
????
mysql>exit
?
?? 這種方式有個問題,就是設置的最大連接數只在mysql當前服務進程有效,一旦mysql重啟,又會恢復到初始狀態。因為mysql啟動后的初始化工作是從其配置文件中讀取數據的,而這種方式沒有對其配置文件做更改。
?? 第二種:通過修改配置文件來修改mysql最大連接數(max_connections)。
?? 這種方式說來很簡單,只要修改MySQL配置文件my.ini 或 my.cnf的參數max_connections,將其改為max_connections=1000,然后重啟MySQL即可。但是有一點最難的就是 my.ini這個文件在哪找。通常有兩種可能,一個是在安裝目錄下,另一種是在數據文件的目錄下,安裝的時候如果沒有人為改變目錄的話,一般就在 C:/ProgramData/MySQL往下的目錄下,linux系統中一般在/etc目錄下。
?其他需注意的:
?? 在編程時,由于用MySQL語句調用數據庫時,在每次之執行語句前,會做一個臨時的變量用來打開數據庫,所以你在使用MySQL語句的時候,記得在每次調用完MySQL之后就關閉MySQL臨時變量。
?? 另外對于訪問量大的,可以考慮直接寫到文本中,根據預測的訪問量,先定義假若是100個文件文件名,需要的時候,再對所有文本文件中的數據進行分析,再導入數據庫。
?
如果是root帳號,你能看到所有用戶的當前連接。如果是其它普通帳號,只能看到自己占用的連接
怎么進入mysql命令行呢? mysql的安裝目錄下面有個bin目錄,先用命令行進入該目錄,然后用 mysql -uroot -p123456 來登錄(注意:用戶名和密碼不用包含“”)
命令: 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?????????????服務器工作了多少秒。