• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 博客專欄

    EEPW首頁 > 博客 > Mysql 連接數,最大并發數設置

    Mysql 連接數,最大并發數設置

    發布人:lantu 時間:2021-11-18 來源:工程師 發布文章

    項目中可能會遇到MySQL: ERROR 1040: Too many connections”的異常情況,造成這種情況的一種原因是訪問量過高,MySQL服務器抗不住,這個時候就要考慮增加從服務器分散讀壓力;另一種原因就是MySQL配置文件中max_connections值過小。
    首先,首先我們來看下mysql的最大連接數:

    show variables like '%max_connections%';

    如果服務器的并發連接請求量比較大,建議調高此值,以增加并行連接數量,當然這建立在機器能支撐的情況下,因為如果連接數越多,介于MySQL會為每個連接提供連接緩沖區,

    就會開銷越多的內存,所以要適當調整該值,不能盲目提高設值。

    數值過小會經常出現ERROR 1040: Too many connections錯誤,可以過

    show global status like 'Max_used_connections';

    通配符查看當前狀態的連接數量,以定奪該值的大小。

    以看到服務器響應的最大連接數為3,遠遠低于mysql服務器允許的最大連接數值。

    對于mysql服務器最大連接數值的設置范圍比較理想的是:服務器響應的最大連接數值占服務器上限連接數值的比例值在10%以上,如果在10%以下,說明mysql服務器最大連接上限值設置過高.

    Max_used_connections / max_connections * 100% = 3/512 *100% ≈ 0.0058%

    我們可以看到占比遠低于10%(因為這是本地監控測試服務器,結果值沒有太大的參考意義,大家可以根據實際情況設置連接數的上限值)。

    max_used_connections / max_connections * 100% (理想值≈ 85%)

    如果max_used_connections跟max_connections相同 那么就是max_connections設置過低或者超過服務器負載上限了,低于10%則設置過大。

    MySQL的max_connections參數用來設置最大連接(用戶)數。每個連接MySQL的用戶均算作一個連接。

    MySQL無論如何都會保留一個用于管理員(SUPER)登錄的連接,用于管理員連接數據庫進行維護操作,即使當前連接數已經達到了max_connections。因此MySQL的實際最大可連接數為max_connections+1;
    這個參數實際起作用的最大值(實際最大可連接數)為16384,即該參數最大值不能超過16384,即使超過也以16384為準;
    增加max_connections參數的值,不會占用太多系統資源。系統資源(CPU、內存)的占用主要取決于查詢的密度、效率等;
    該參數設置過小的最明顯特征是出現”Too many connections”錯誤;

    設置這個最大連接數值

    方法1:

    set GLOBAL max_connections=1024;
    show variables like '%max_connections%';

    這種 方式在Mysql重啟后就失效。

    方法2:

    修改mysql配置文件my.cnf,在[mysqld]段中添加或修改max_connections值:
    max_connections=512

    重啟mysql服務即可。

    總體來說,該參數在服務器資源夠用的情況下應該盡量設置大,以滿足多個客戶端同時連接的需求。否則將會出現類似”Too many connections”的錯誤。


    無論從事什么行業,只要做好兩件事就夠了,一個是你的專業、一個是你的人品,專業決定了你的存在,人品決定了你的人脈,剩下的就是堅持,用善良專業和真誠贏取更多的信任。


    *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



    關鍵詞: mysql

    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 普洱| 博兴县| 承德县| 焦作市| 大田县| 抚顺市| 嘉峪关市| 锡林郭勒盟| 桦南县| 阳东县| 盐池县| 连山| 紫阳县| 三河市| 永仁县| 化德县| 准格尔旗| 西吉县| 濉溪县| 淳化县| 南阳市| 绥德县| 天祝| 哈巴河县| 平邑县| 杭锦后旗| 蕲春县| 佳木斯市| 额尔古纳市| 化德县| 绥阳县| 菏泽市| 馆陶县| 河东区| 甘肃省| 无为县| 钟山县| 乐亭县| 汤阴县| 托克托县| 阳朔县|