文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL中如何使用Connection-Control插件

2024-04-02 19:55

关注

这期内容当中小编将会给大家带来有关MySQL中如何使用Connection-Control插件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

首先查看系统变量plugin_dir,找到插件(Plugins)所在的路径,如下所示

mysql> select version() from dual; +-----------+ | version() | +-----------+ | 8.0.18    | +-----------+ 1 row in set (0.00 sec)     mysql> show variables like 'plugin_dir'; +---------------+--------------------------+ | Variable_name | Value                    | +---------------+--------------------------+ | plugin_dir    | /usr/lib64/mysql/plugin/ | +---------------+--------------------------+ 1 row in set (0.01 sec)       [root@KerryDB ~]# cd /usr/lib64/mysql/plugin/ [root@KerryDB plugin]# ls -lrt total 76388 -rwxr-xr-x. 1 root root   106696 Sep 20  2019 rewrite_example.so -rwxr-xr-x. 1 root root   104432 Sep 20  2019 mysql_no_login.so -rwxr-xr-x. 1 root root   111464 Sep 20  2019 mypluglib.so -rwxr-xr-x. 1 root root   106648 Sep 20  2019 auth_socket.so -rwxr-xr-x. 1 root root   163560 Sep 20  2019 adt_null.so -rwxr-xr-x. 1 root root   409032 Sep 20  2019 validate_password.so -rwxr-xr-x. 1 root root  9054776 Sep 20  2019 libpluginmecab.so -rwxr-xr-x. 1 root root   344696 Sep 20  2019 authentication_ldap_sasl_client.so -rwxr-xr-x. 1 root root  1145832 Sep 20  2019 rewriter.so -rwxr-xr-x. 1 root root   625944 Sep 20  2019 ha_example.so -rwxr-xr-x. 1 root root   388992 Sep 20  2019 semisync_slave.so -rwxr-xr-x. 1 root root    32368 Sep 20  2019 component_log_sink_json.so -rwxr-xr-x. 1 root root   235200 Sep 20  2019 component_audit_api_message_emit.so -rwxr-xr-x. 1 root root   494720 Sep 20  2019 keyring_udf.so -rwxr-xr-x. 1 root root   149280 Sep 20  2019 component_log_sink_syseventlog.so -rwxr-xr-x. 1 root root  1446024 Sep 20  2019 semisync_master.so -rwxr-xr-x. 1 root root  2277480 Sep 20  2019 mysql_clone.so -rwxr-xr-x. 1 root root  1231376 Sep 20  2019 libmemcached.so -rwxr-xr-x. 1 root root   454096 Sep 20  2019 component_mysqlbackup.so -rwxr-xr-x. 1 root root   193336 Sep 20  2019 component_log_filter_dragnet.so -rwxr-xr-x. 1 root root  1177352 Sep 20  2019 ha_mock.so -rwxr-xr-x. 1 root root    83936 Sep 20  2019 locking_service.so -rwxr-xr-x. 1 root root  1269784 Sep 20  2019 connection_control.so -rwxr-xr-x. 1 root root  1280936 Sep 20  2019 innodb_engine.so -rwxr-xr-x. 1 root root   442304 Sep 20  2019 component_validate_password.so -rwxr-xr-x. 1 root root  1206024 Sep 20  2019 version_token.so -rwxr-xr-x. 1 root root  2338880 Sep 20  2019 keyring_file.so -rwxr-xr-x. 1 root root  2031912 Sep 20  2019 ddl_rewriter.so -rwxr-xr-x. 1 root root 49246400 Sep 20  2019 group_replication.so drwxr-xr-x. 2 root root     4096 Nov  6  2019 debug

安装插件

mysql> INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so'; Query OK, 0 rows affected (0.02 sec) mysql> INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so'; Query OK, 0 rows affected (0.00 sec)

检查是否安装成功

mysql> show plugins;   mysql> SELECT PLUGIN_NAME, PLUGIN_LIBRARY, PLUGIN_STATUS, LOAD_OPTION      -> FROM INFORMATION_SCHEMA.PLUGINS      -> WHERE PLUGIN_LIBRARY = 'CONNECTION_CONTROL.SO'; +------------------------------------------+-----------------------+---------------+-------------+ | PLUGIN_NAME                              | PLUGIN_LIBRARY        | PLUGIN_STATUS | LOAD_OPTION | +------------------------------------------+-----------------------+---------------+-------------+ | CONNECTION_CONTROL                       | connection_control.so | ACTIVE        | FORCE       | | CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS | connection_control.so | ACTIVE        | FORCE       | +------------------------------------------+-----------------------+---------------+-------------+ 2 rows in set (0.00 sec)   mysql>

设置系统变量

mysql> show variables like 'connection_control%'; +-------------------------------------------------+------------+ | Variable_name                                   | Value      | +-------------------------------------------------+------------+ | connection_control_failed_connections_threshold | 3          | | connection_control_max_connection_delay         | 2147483647 | | connection_control_min_connection_delay         | 1000       | +-------------------------------------------------+------------+

注意事项:

1:connection_control_min_connection_delay的值必须小于connection_control_max_connection_delay,connection_control_max_connection_delay不能小于connection_control_min_connection_delay的值。

mysql> set global connection_control_min_connection_delay=60000;  Query OK, 0 rows affected (0.00 sec)

注意,命令方式设置全局系统变量在服务器重启后丢失,所以最好的方式在参数文件my.cnf设置全局系统变量

-- 配置文件增加以下配置

[mysqld]    plugin-load-add = connection_control.so          #不是必须   connection-control = FORCE                       #不是必须   connection-control-failed-login-attempts = FORCE #不是必须   connection_control_min_connection_delay = 60000    connection_control_max_connection_delay = 1800000    connection_control_failed_connections_threshold = 3

三次连续输错密码后,就会在第四次输入密码后挂起

[root@lnx02 ~]# mysql -h 10.20.57.24 -u test -p Enter password:  ERROR 1045 (28000): Access denied for user 'test'@'192.168.27.180' (using password: YES) [root@lnx02 ~]# mysql -h 10.20.57.24 -u test -p Enter password:  ERROR 1045 (28000): Access denied for user 'test'@'192.168.27.180' (using password: YES) [root@lnx02 ~]# mysql -h 10.20.57.24 -u test -p Enter password:  ERROR 1045 (28000): Access denied for user 'test'@'192.168.27.180' (using password: YES) [root@lnx02 ~]# mysql -h 10.20.57.24 -u test -p Enter password:

MySQL中如何使用Connection-Control插件

注意,MySQL服务重启过后,INFORMATION_SCHEMA.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS中的数据全部前空。

必须激活CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS插件才能使用该表CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS,并且要么激活CONNECTION_CONTROL插件,要么该表的内容始终为空。请参见第6.4.2节“连接控制插件”。

该表仅包含已进行一次或多次连续失败连接尝试而没有随后成功尝试的客户端的行。当客户端成功连接时,其失败连接计数将重置为零,并且服务器将删除与该客户端对应的任何行。

在运行时为connection_control_failed_connections_threshold系统变量分配一个值会将所有累积的失败连接计数器重置为零,这将导致表变空。

解除账号延迟响应限制

方法1:重启MySQL实例

方法2:调整系统变量connection_control_failed_connections_threshold的值。

mysql> SELECT * FROM      -> INFORMATION_SCHEMA.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS; +-------------------+-----------------+ | USERHOST          | FAILED_ATTEMPTS | +-------------------+-----------------+ | 'test'@'192.168%' |               5 | +-------------------+-----------------+ 1 row in set (0.00 sec)     mysql>  mysql> set global connection_control_failed_connections_threshold=2; Query OK, 0 rows affected (0.00 sec)   mysql> SELECT * FROM      -> INFORMATION_SCHEMA.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS; Empty set (0.00 sec)

3:卸载插件plugin

mysql> UNINSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;  mysql> UNINSTALL PLUGIN CONNECTION_CONTROL;

注意事项:

关于Connection-Control的实现原理,淘宝数据库内核月报有篇文章分析过代码,介绍过实现原理,Connection-Control插件虽然可以防止恶意暴力破解MySQL账户,但是可能会浪费MySQL的资源;

上述就是小编为大家分享的MySQL中如何使用Connection-Control插件了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯