本次以Mysql5.7.32為例(5.7.X默認帶這個插件的,默認不開啟)
支持動態安裝
-- 進入數據庫執行下面兩個SQL
INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so'; INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so';
驗證安裝之后是否已經啟用
如下圖顯示表示一起用
-- 查看所有插件
show plugins;

查看開啟后默認參數
show variables like 'connection_control%';

參數解釋:
connection_control_failed_connections_threshold:失敗嘗試的次數,默認為3,表示當連接失敗3次后啟用連接控制,0表示不開啟
connection_control_max_connection_delay:響應延遲的最大時間,默認約25天
connection_control_min_connection_delay:響應延遲的最小時間,默認1000微秒,1秒
參數可通過SET語句直接設置
SET GLOBAL connection_control_failed_connections_threshold = 5; SET GLOBAL connection_control_min_connection_delay = 30000; SET GLOBAL connection_control_max_connection_delay = 100000;
通過配置文件安裝
-- my.cnf文件在[mysqld]模塊下面添加如下內容,參數自己根據實際情況來
plugin-load-add=connection_control.so connection-control=FORCE connection-control-failed-login-attempts=FORCE connection_control_min_connection_delay= 30000 connection_control_max_connection_delay= 108000 connection_control_failed_connections_threshold=5
--配置好后重啟mysql所有服務,按照上面的驗證一下是否安裝成功
注意:connection_control_min_connection_delay所設置的值小於wait_timeout的值,該插件不會生效,務必注意
我這邊wait_timeout默認值為28800ms

驗證插件功能
驗證方法,用同一個用戶,故意用錯誤密碼登錄嘗試5次(我設置的5次),在第六次時候會處於等待時間,等待時長是connection_control_min_connection_delay這個設置的時間

查看錯誤記錄
-- 執行下面這個SQL,看是否有錯誤記錄,錯誤記錄會記錄在information_schema.connection_control_failed_login_attempts表
select * from information_schema.connection_control_failed_login_attempts;

以上操作需要謹慎,沒發生意外則正常開啟,參考官網:https://dev.mysql.com/doc/refman/5.7/en/connection-control-installation.html
