Mysql查看最大連接數(shù)和修改最大連接數(shù)的講解
MySQL查看最大連接數(shù)和修改最大連接數(shù)
1、查看最大連接數(shù)
show variables like '%max_connections%';
2、修改最大連接數(shù)
set GLOBAL max_connections = 200;
以下的文章主要是向大家介紹的是MySQL最大連接數(shù)的修改,我們大家都知道MySQL最大連接數(shù)的默認(rèn)值是100, 這個(gè)數(shù)值對(duì)于并發(fā)連接很多的數(shù)據(jù)庫(kù)的應(yīng)用是遠(yuǎn)不夠用的,當(dāng)連接請(qǐng)求大于默認(rèn)連接數(shù)后,就會(huì)出現(xiàn)無(wú)法連接數(shù)據(jù)庫(kù)的錯(cuò)誤,因此我們需要把它適當(dāng)調(diào)大一些。在使 用MySQL數(shù)據(jù)庫(kù)的時(shí)候,經(jīng)常會(huì)遇到這么一個(gè)問(wèn)題,就是“Can not connect to MySQL server. Too many connections”-mysql 1040錯(cuò)誤,這是因?yàn)樵L問(wèn)MySQL且還未釋放的連接數(shù)目已經(jīng)達(dá)到MySQL的上限。通常,mysql的最大連接數(shù)默認(rèn)是100, 最大可以達(dá)到16384。
mysql數(shù)據(jù)庫(kù)連接數(shù)過(guò)多導(dǎo)致系統(tǒng)出錯(cuò),系統(tǒng)不能連接數(shù)據(jù)庫(kù),關(guān)鍵要看兩個(gè)數(shù)據(jù):
1、數(shù)據(jù)庫(kù)系統(tǒng)允許的最大可連接數(shù)max_connections。這個(gè)參數(shù)是可以設(shè)置的。如果不設(shè)置,默認(rèn)是100。
2、數(shù)據(jù)庫(kù)當(dāng)前的連接線(xiàn)程數(shù)threads_connected。這是動(dòng)態(tài)變化的。
查看max_connections、max_connections的辦法下面我們?cè)僬f(shuō)。
如果 threads_connected == max_connections 時(shí),數(shù)據(jù)庫(kù)系統(tǒng)就不能提供更多的連接數(shù)了,這時(shí),如果程序還想新建連接線(xiàn)程,數(shù)據(jù)庫(kù)系統(tǒng)就會(huì)拒絕,如果程序沒(méi)做太多的錯(cuò)誤處理。
因?yàn)閯?chuàng)建和銷(xiāo)毀數(shù)據(jù)庫(kù)的連接,都會(huì)消耗系統(tǒng)的資源。而且為了避免在同一時(shí)間同時(shí)打開(kāi)過(guò)多的連接線(xiàn)程,現(xiàn)在編程一般都使用所謂數(shù)據(jù)庫(kù)連接池技術(shù)。
但數(shù)據(jù)庫(kù)連接池技術(shù),并不能避免程序錯(cuò)誤導(dǎo)致連接資源消耗殆盡。
這種情況通常發(fā)生在程序未能及時(shí)釋放數(shù)據(jù)庫(kù)連接資源或其他原因造成數(shù)據(jù)庫(kù)連接資源不能釋放,發(fā)生類(lèi)似錯(cuò)誤的簡(jiǎn)便的檢查辦法是,在刷新頁(yè)面時(shí),不斷監(jiān)視threads_connected的變化。如果max_connections足夠大,而 threads_connected值不斷增加以至達(dá)到max_connections,那么,就應(yīng)該檢查程序了。當(dāng)然,如果采用數(shù)據(jù)庫(kù)連接池技術(shù),threads_connected增長(zhǎng)到數(shù)據(jù)庫(kù)連接池的最大連接線(xiàn)程數(shù)時(shí),就不再增長(zhǎng)了。
查看 max_connections
show variables like "max_connections";
結(jié)果如下:
+-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 100 | +-----------------+-------+
查看 threads_connected
show status like 'Thread_%';
結(jié)果如下:
+-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | Threads_cached | 0 | | Threads_connected | 1 | | Threads_created | 1 | | Threads_running | 1 | +-------------------+-------+
設(shè)置max_connections
設(shè)置辦法是在my.cnf文件中找到max_connections一項(xiàng)修改即可,若沒(méi)有該項(xiàng),請(qǐng)?jiān)赱mysqld]下添加一行:
[mysqld] max_connections=1000
修改完畢后,重啟MySQL即可。當(dāng)然,為了確保設(shè)置正確,應(yīng)該查看一下max_connections。
注意:
- 1、這里寫(xiě)的1000。請(qǐng)按實(shí)際要求修改;
- 2、添加了最大允許連接數(shù),對(duì)系統(tǒng)消耗增加不大。
- 3、如果你的mysql用的是my.ini作配置文件,設(shè)置類(lèi)似,但設(shè)置的格式要稍作變通。
其他需注意的:
在編程時(shí),由于用MySQL語(yǔ)句調(diào)用數(shù)據(jù)庫(kù)時(shí),在每次之執(zhí)行語(yǔ)句前,會(huì)做一個(gè)臨時(shí)的變量用來(lái)打開(kāi)數(shù)據(jù)庫(kù),所以你在使用MySQL語(yǔ)句的時(shí)候,記得在每次調(diào)用完MySQL之后就關(guān)閉MySQL臨時(shí)變量。
另外對(duì)于訪問(wèn)量大的,可以考慮直接寫(xiě)到文本中,根據(jù)預(yù)測(cè)的訪問(wèn)量,先定義假若是100個(gè)文件文件名,需要的時(shí)候,再對(duì)所有文本文件中的數(shù)據(jù)進(jìn)行分析,再導(dǎo)入數(shù)據(jù)庫(kù)。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
解決MySQL8.0報(bào)錯(cuò)Client does not support auth
本文主要介紹了解決MySQL8.0報(bào)錯(cuò)Client does not support authentication protocol requested by server...問(wèn)題,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05
隨機(jī)生成八位優(yōu)惠碼并保存至Mysql數(shù)據(jù)庫(kù)
這篇文章主要介紹了隨機(jī)生成八位優(yōu)惠碼并保存至Mysql數(shù)據(jù)庫(kù)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-02-02
Mysql5.7定時(shí)備份的實(shí)現(xiàn)
這篇文章主要介紹了Mysql5.7定時(shí)備份的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
MySQL串行化隔離級(jí)別(間隙鎖實(shí)現(xiàn))
本文主要介紹了MySQL串行化隔離級(jí)別(間隙鎖實(shí)現(xiàn)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06

