max_user_connections是指使用者最大串連數。如果出現has more than 'max_user_connections' active connections或User 'xxx' has exceeded the 'max_user_connections' resource等有關使用者最大串連數已滿的報錯,您可以參照本文進行操作,解決報錯問題。
問題現象
通過DMS控制台或者資料庫用戶端無法串連RDS MySQL資料庫,且提示“max_user_connections”相關錯誤資訊。
問題原因
RDS MySQL資料庫的串連數已滿,導致不能正常串連。
擷取訪問來源
控制台功能查看
SQL洞察和審計
開啟SQL洞察和審計功能後會自動記錄來自資料庫核心的SQL語句,以及SQL語句的執行帳號、IP地址、執行詳情等資訊,對執行個體效能沒有影響。詳情請參見SQL洞察和審計。
SQL洞察和審計功能為收費功能,計費詳情請參見SQL洞察和審計功能計費詳情。
開啟步驟
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列中,選擇 。
開通SQL洞察和審計。
會話管理
使用會話管理功能,可直觀地查看執行個體當前的全部會話、活躍會話和異常會話,並展示執行個體被訪問的使用者、主機、執行時間和狀態等。詳情請參見會話管理。
開啟步驟
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列中,選擇自治服務>一鍵診斷。
單擊一鍵診斷頁簽。
在一鍵診斷頁面,選擇會話管理,可查看當前執行個體會話的使用者、主機、執行時間和狀態等。
通過SQL命令查看
資料庫連接已滿,無法支援新會話串連,導致SQL不能執行。如有歷史保留的DMS會話,可執行SQL查看。
使用者可以通過ECS訪問資料庫或登入DMS去操作資料庫,執行以下SQL命令查看當前執行慢的線程,針對比較慢的線程進行處理。更多資訊請參見:
SHOW PROCESSLIST;
返回結果Host列為訪問來源的IP地址。
解決方案
查看資料庫執行個體會話串連詳情。
查看資料庫執行個體的max_user_connections配置。
您可以通過以下兩種方式查看max_user_connections參數值:
在RDS控制台查看:
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列中,單擊參數設定。
在可修改參數頁簽中查看max_user_connections參數值。
登入RDS MySQL資料庫,執行如下命令查看max_user_connections的參數值。
show variables like 'max_user_connections';
在確認記憶體資源充足的情況下,將max_user_connections的參數值修改為更大的值。詳情請參見修改最大串連數。
如果上述方法不能解決問題,您還可以嘗試以下方法:
最佳化資料庫執行個體的串連問題,詳情請參見如何處理RDS MySQL串連數被打滿的情況。
重啟資料庫執行個體釋來放串連,詳情請參見重啟執行個體。