超出MySQL最大連接數(shù)問(wèn)題及解決
超出MySQL最大連接數(shù)問(wèn)題
如果遇到MySQ連接數(shù)超出最大限制了,不要慌,往下看:
通常,mysql的最大連接數(shù)默認(rèn)是100, 最大可以達(dá)到16384。
查看最大連接數(shù)
show variables like '%max_connections%';
修改最大連接數(shù)
方法一:修改配置文件。推薦方法一
進(jìn)入MySQL安裝目錄 打開(kāi)MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 并將其修改為
max_connections=1000 然后再服務(wù)里重起MySQL服務(wù)即可.
方法二:命令行修改。不推薦方法二
命令行登錄MySQL后。設(shè)置新的MySQL最大連接數(shù)為200:
MySQL> set global max_connections=200
如果已經(jīng)連接不上了,先重啟MySQL服務(wù)后再進(jìn)行上述操作即可。
這種方式有個(gè)問(wèn)題,就是設(shè)置的最大連接數(shù)只在mysql當(dāng)前服務(wù)進(jìn)程有效,一旦mysql重啟,又會(huì)恢復(fù)到初始狀態(tài)。因?yàn)閙ysql啟動(dòng)后的初始化工作是從其配置文件中讀取數(shù)據(jù)的,而這種方式?jīng)]有對(duì)其配置文件做更改。
MySQL最大連接數(shù),TimeOut配置
MySQL連接數(shù)配置
1.MySQL的max_connections參數(shù)用來(lái)設(shè)置最大連接(用戶)數(shù)。每個(gè)連接MySQL的用戶均算作一個(gè)連接,max_connections的默認(rèn)值為100左右
1.1查看數(shù)據(jù)庫(kù)配置的最大連接數(shù)
show variables like "max_connections";
可以使用Navicat或者CMD進(jìn)行命令查詢
1.2如果實(shí)際情況中的最大連接數(shù)超過(guò),就會(huì)提示TimeOut超出最大請(qǐng)求數(shù)
這是我們需要進(jìn)行配置項(xiàng)的修改
設(shè)置調(diào)整最大連接數(shù)
set global max_connections = 1000;
Mysql的連接線程池
1.查看Mysql數(shù)據(jù)庫(kù)當(dāng)前的所有連接線程
show full processlist;
圖片中可以看到當(dāng)前數(shù)據(jù)庫(kù)的連接線程情況 。其中發(fā)現(xiàn)很多的線程都是Sleep狀態(tài),這個(gè)下面講到的TimeOut配置會(huì)進(jìn)行管理Sleep線程。
Mysql TimeOut配置
查看Mysql的TimeOut配置
show global variables like '%timeout%';
參數(shù)名 | 參數(shù)作用 |
---|---|
delayed_insert_timeout | 在獲取鏈接時(shí),等待握手的超時(shí)時(shí)間,只在登錄時(shí)有效,登錄成功這個(gè)參數(shù)就不管事了。主要是為了防止網(wǎng)絡(luò)不佳時(shí)應(yīng)用重連導(dǎo)致連接數(shù)漲太快,一般默認(rèn)即可 |
delayed_insert_timeout | 這是為MyISAM INSERT DELAY設(shè)計(jì)的超時(shí)參數(shù),在INSERT DELAY中止前等待INSERT語(yǔ)句的時(shí)間 |
innodb_lock_wait_timeout | 事務(wù)遇到鎖等待時(shí)的Query超時(shí)時(shí)間。跟死鎖不一樣,InnoDB一旦檢測(cè)到死鎖立刻就會(huì)回滾代價(jià)小的那個(gè)事務(wù),鎖等待是沒(méi)有死鎖的情況下一個(gè)事務(wù)持有另一個(gè)事務(wù)需要的鎖資源,被回滾的肯定是請(qǐng)求鎖的那個(gè)Query |
innodb_rollback_on_timeout | 這個(gè)參數(shù)關(guān)閉或不存在的話遇到超時(shí)只回滾事務(wù)最后一個(gè)Query,打開(kāi)的話事務(wù)遇到超時(shí)就回滾整個(gè)事務(wù) |
interactive_timeout/wait_timeout | 一個(gè)持續(xù)SLEEP狀態(tài)的線程多久被關(guān)閉。線程每次被使用都會(huì)被喚醒為activity狀態(tài),執(zhí)行完Query后成為interactive狀態(tài),重新開(kāi)始計(jì)時(shí)。wait_timeout不同在于只作用于TCP/IP和Socket鏈接的線程,意義是一樣的 |
net_read_timeout / net_write_timeout | 這個(gè)參數(shù)只對(duì)TCP/IP鏈接有效,分別是數(shù)據(jù)庫(kù)等待接收客戶端發(fā)送網(wǎng)絡(luò)包和發(fā)送網(wǎng)絡(luò)包給客戶端的超時(shí)時(shí)間,這是在Activity狀態(tài)下的線程才有效的參數(shù) |
slave_net_timeout | 這是Slave判斷主機(jī)是否掛掉的超時(shí)設(shè)置,在設(shè)定時(shí)間內(nèi)依然沒(méi)有獲取到Master的回應(yīng)就人為Master掛掉了 |
這里我們?cè)O(shè)置下Sleep線程的時(shí)間,以免線程池被消耗太多
執(zhí)行修改腳本
set global interactive_timeout=100; set global wait_timeout=30;
執(zhí)行完成后可以發(fā)現(xiàn)全局變量已修改
注意:在項(xiàng)目的連接字符中也需要確認(rèn)是否進(jìn)行了相關(guān)的配置,導(dǎo)致了Mysql連接失敗問(wèn)題
以上設(shè)置會(huì)馬上生效,但是當(dāng)mysql重啟時(shí)這個(gè)設(shè)置會(huì)失效,更好的辦法是
找到mysqld塊,修改或者添加下面的設(shè)置:
max_connections=200 wait_timeout=30 interactive_timeout=100
這樣修改之后,即便重啟mysql也會(huì)默認(rèn)載入這個(gè)配置了
關(guān)于my.ini文件的路徑以及創(chuàng)建
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Centos 5.2下安裝多個(gè)mysql數(shù)據(jù)庫(kù)配置詳解
在實(shí)際應(yīng)用中,有時(shí)候,我們需要在同一臺(tái)服務(wù)器上安裝兩個(gè)甚至多個(gè)mysql數(shù)據(jù)庫(kù),那么,如何來(lái)操作呢,今天我們就來(lái)探討下這個(gè)問(wèn)題2014-07-07mysql “ Every derived table must have its own alias”出現(xiàn)錯(cuò)誤解決辦法
這篇文章主要介紹了mysql “ Every derived table must have its own alias”出現(xiàn)錯(cuò)誤解決辦法的相關(guān)資料,需要的朋友可以參考下2017-01-01mysql優(yōu)化小技巧之去除重復(fù)項(xiàng)實(shí)現(xiàn)方法分析【百萬(wàn)級(jí)數(shù)據(jù)】
這篇文章主要介紹了mysql優(yōu)化小技巧之去除重復(fù)項(xiàng)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了mysql去除重復(fù)項(xiàng)的方法,并附帶了隨機(jī)查詢優(yōu)化的相關(guān)操作技巧,需要的朋友可以參考下2020-01-01mysql存儲(chǔ)過(guò)程中使用游標(biāo)的實(shí)例
使用MYSQL存儲(chǔ)過(guò)程,可以實(shí)現(xiàn)諸多的功能,下面將為您介紹一個(gè)MYSQL存儲(chǔ)過(guò)程中使用游標(biāo)的實(shí)例2014-01-01mysql-8.0.15-winx64 使用zip包進(jìn)行安裝及服務(wù)啟動(dòng)后立即關(guān)閉問(wèn)題
這篇文章主要介紹了mysql 使用zip包進(jìn)行安裝以及服務(wù)啟動(dòng)后立即關(guān)閉問(wèn)題 ,本實(shí)例使用的mysql版本為mysql-8.0.15-winx64,需要的朋友可以參考下2019-05-05MySQL中distinct與group by語(yǔ)句的一些比較及用法講解
這篇文章主要介紹了MySQL中distinct與group by的一些比較及用法講解,二者在查詢操作中的用法有很多相似之處,需要的朋友可以參考下2016-01-01淺談MySQL的B樹(shù)索引與索引優(yōu)化小結(jié)
這篇文章主要介紹了淺談MySQL的B樹(shù)索引與索引優(yōu)化小結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03