mysql 参数max_connect_errors研究

1.在server端设置max_connect_errors=3,超过3次连接错误就block

mysql> set global max_connect_errors=3;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'max_connect_errors';

+--------------------+-------+

| Variable_name | Value |

+--------------------+-------+

| max_connect_errors | 3 |

+--------------------+-------+

1 row in set (0.00 sec)

2.在客户端10.153.56.25连接server,不输入密码四次,第五次依旧连接上了

mysql@t3-tksbscms-tkcms-db-mysql01-ma01 bin\]$ mysql -h 10.153.35.2 -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'10.153.56.25' (using password: NO) \[mysql@t3-tksbscms-tkcms-db-mysql01-ma01 bin\]$ mysql -h 10.153.35.2 -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'10.153.56.25' (using password: NO) \[mysql@t3-tksbscms-tkcms-db-mysql01-ma01 bin\]$ mysql -h 10.153.35.2 -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'10.153.56.25' (using password: NO) \[mysql@t3-tksbscms-tkcms-db-mysql01-ma01 bin\]$ mysql -h 10.153.35.2 -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'10.153.56.25' (using password: NO) \[mysql@t3-tksbscms-tkcms-db-mysql01-ma01 bin\]$ mysql -h 10.153.35.2 -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \\g. Your MySQL connection id is 17 Server version: 5.7.26-log MySQL Community Server (GPL) Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement. mysql\> 3.在server端看到10.153.56.25 HOST_VALIDATED: YES , SUM_CONNECT_ERRORS: 0 , COUNT_HOST_BLOCKED_ERRORS: 0 COUNT_AUTHENTICATION_ERRORS: 4 说明密码错误并不数据连接错误 mysql\> select \* from performance_schema.host_cache\\G \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 1. row \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* IP: 10.153.56.25 HOST: NULL HOST_VALIDATED: YES SUM_CONNECT_ERRORS: 0 COUNT_HOST_BLOCKED_ERRORS: 0 COUNT_NAMEINFO_TRANSIENT_ERRORS: 0 COUNT_NAMEINFO_PERMANENT_ERRORS: 1 COUNT_FORMAT_ERRORS: 0 COUNT_ADDRINFO_TRANSIENT_ERRORS: 0 COUNT_ADDRINFO_PERMANENT_ERRORS: 0 COUNT_FCRDNS_ERRORS: 0 COUNT_HOST_ACL_ERRORS: 0 COUNT_NO_AUTH_PLUGIN_ERRORS: 0 COUNT_AUTH_PLUGIN_ERRORS: 0 COUNT_HANDSHAKE_ERRORS: 0 COUNT_PROXY_USER_ERRORS: 0 COUNT_PROXY_USER_ACL_ERRORS: 0 COUNT_AUTHENTICATION_ERRORS: 4 COUNT_SSL_ERRORS: 0 COUNT_MAX_USER_CONNECTIONS_ERRORS: 0 COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS: 0 COUNT_DEFAULT_DATABASE_ERRORS: 0 COUNT_INIT_CONNECT_ERRORS: 0 COUNT_LOCAL_ERRORS: 0 COUNT_UNKNOWN_ERRORS: 0 FIRST_SEEN: 2025-02-13 14:26:57 LAST_SEEN: 2025-02-13 14:27:10 FIRST_ERROR_SEEN: 2025-02-13 14:26:57 LAST_ERROR_SEEN: 2025-02-13 14:27:02 1 row in set (0.00 sec) 4.通过telnet 10.153.35.2 3306命令,超过3次后第四次后就报错: Host '10.153.56.25' is blocked because of many connection errors; 正常的mysql -h 10.153.35.2 -u root -p输入密码也被 block了 \[mysql@t3-tksbscms-tkcms-db-mysql01-ma01 bin\]$ telnet 10.153.35.2 3306 Trying 10.153.35.2... Connected to 10.153.35.2. Escape character is '\^\]'. N 5.7.26-logM:Nu -A%a-9c2Ubmysql_native_password !#08S01Got packets out of orderConnection closed by foreign host. \[mysql@t3-tksbscms-tkcms-db-mysql01-ma01 bin\]$ \[mysql@t3-tksbscms-tkcms-db-mysql01-ma01 bin\]$ telnet 10.153.35.2 3306 Trying 10.153.35.2... Connected to 10.153.35.2. Escape character is '\^\]'. N 5.7.26-logS8IQA-CNOG\\+\|mSCmysql_native_password !#08S01Got packets out of orderConnection closed by foreign host. \[mysql@t3-tksbscms-tkcms-db-mysql01-ma01 bin\]$ telnet 10.153.35.2 3306 Trying 10.153.35.2... Connected to 10.153.35.2. Escape character is '\^\]'. N 5.7.26-logWd7\[G- -6% "mysql_native_password !#08S01Got packets out of orderConnection closed by foreign host. \[mysql@t3-tksbscms-tkcms-db-mysql01-ma01 bin\]$ telnet 10.153.35.2 3306 Trying 10.153.35.2... Connected to 10.153.35.2. Escape character is '\^\]'. jHost '10.153.56.25' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'Connection closed by foreign host. \[mysql@t3-tksbscms-tkcms-db-mysql01-ma01 bin\]$ telnet 10.153.35.2 3306 Trying 10.153.35.2... Connected to 10.153.35.2. Escape character is '\^\]'. jHost '10.153.56.25' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'Connection closed by foreign host. \[mysql@t3-tksbscms-tkcms-db-mysql01-ma01 bin\]$ mysql -h 10.153.35.2 -u root -p Enter password: ERROR 1129 (HY000): Host '10.153.56.25' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 5.server端可以看到 SUM_CONNECT_ERRORS: 3 COUNT_HOST_BLOCKED_ERRORS: 3 mysql\> select \* from performance_schema.host_cache\\G \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 1. row \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* IP: 10.153.56.25 HOST: NULL HOST_VALIDATED: YES SUM_CONNECT_ERRORS: 3 COUNT_HOST_BLOCKED_ERRORS: 3 COUNT_NAMEINFO_TRANSIENT_ERRORS: 0 COUNT_NAMEINFO_PERMANENT_ERRORS: 1 COUNT_FORMAT_ERRORS: 0 COUNT_ADDRINFO_TRANSIENT_ERRORS: 0 COUNT_ADDRINFO_PERMANENT_ERRORS: 0 COUNT_FCRDNS_ERRORS: 0 COUNT_HOST_ACL_ERRORS: 0 COUNT_NO_AUTH_PLUGIN_ERRORS: 0 COUNT_AUTH_PLUGIN_ERRORS: 0 COUNT_HANDSHAKE_ERRORS: 3 COUNT_PROXY_USER_ERRORS: 0 COUNT_PROXY_USER_ACL_ERRORS: 0 COUNT_AUTHENTICATION_ERRORS: 4 COUNT_SSL_ERRORS: 0 COUNT_MAX_USER_CONNECTIONS_ERRORS: 0 COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS: 0 COUNT_DEFAULT_DATABASE_ERRORS: 0 COUNT_INIT_CONNECT_ERRORS: 0 COUNT_LOCAL_ERRORS: 0 COUNT_UNKNOWN_ERRORS: 0 FIRST_SEEN: 2025-02-13 14:26:57 LAST_SEEN: 2025-02-13 14:33:15 FIRST_ERROR_SEEN: 2025-02-13 14:26:57 LAST_ERROR_SEEN: 2025-02-13 14:33:15 1 row in set (0.00 sec) 6.解决办法就是在server端执行flush hosts; mysql\> flush hosts; Query OK, 0 rows affected (0.00 sec) mysql\> select \* from performance_schema.host_cache\\G Empty set (0.00 sec) 可以看到10.153.56.25这个client又可以连接了 \[mysql@t3-tksbscms-tkcms-db-mysql01-ma01 bin\]$ mysql -h 10.153.35.2 -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \\g. Your MySQL connection id is 24 Server version: 5.7.26-log MySQL Community Server (GPL) Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement. mysql\>

相关推荐
2501_915918419 分钟前
HTTP和HTTPS工作原理、安全漏洞及防护措施全面解析
android·http·ios·小程序·https·uni-app·iphone
Little丶Seven1 小时前
使用adb获取安卓模拟器日志
android·unity·adb·个人开发
凉栀お_1 小时前
MySQL第五次作业(触发器,存储过程)
android·mysql·adb
limingade1 小时前
ADB点击实战-做一个自动点广告播放领金币的脚本app(中)
android·adb·智能手机·ocr识别手机广告·ocr识别手机屏幕·adb自动关闭广告
limingade1 小时前
ADB点击实战-做一个自动点广告播放领金币的脚本app(下)
adb
珹洺1 小时前
Java-Spring入门指南(二十九)Android交互核心:按钮点击事件与Activity跳转实战
android·java·spring
2501_916007472 小时前
如何在 Windows 电脑上调试 iOS 设备上的 Safari?完整方案与实战经验分享
android·windows·ios·小程序·uni-app·iphone·safari
2501_915918412 小时前
uni-app iOS日志管理实战,从调试控制台到系统日志的全链路采集与分析指南
android·ios·小程序·https·uni-app·iphone·webview
1024小神2 小时前
Kotlin实现全屏显示效果,挖空和刘海屏适配
android·开发语言·kotlin