Mysql常见配置参数

来自linux中国网wiki
Evan讨论 | 贡献2021年9月18日 (六) 06:50的版本 →‎wait_timeout
跳到导航 跳到搜索

my.cnf

max_connect_errors

max_connect_errors是一个MySQL中与访问安全有关的一个参数,它负责阻止过多尝试失败的客户端以防止暴力破解密码的情况。但是经过实际测试,发现此参数并不能真正的阻止恶意的客户端恶意访问MySQL Server,下面我就来对这个参数的作用以及测试过程做个说明。

max_connect_errors这个参数可以动态修改设置,所以你可以在命令行直接设置:

set global max_connect_errors=10

但是一旦MySQL服务重启,上面设置的值就失效了,如果想要永久生效,还需要修改MySQL参数文件,在其中添加此参数的设置

有的人可能觉得设置完此参数后,就可以正常拦截同一个client,密码错误的访问连续超过10次的情况了,而现实是这样的么?经过本人在5.6.24上测试,发现此参数是没有作用的。如果想要此参数生效,需要具备至少下面的两个条件:

    只有设置参数skip_name_resolve为OFF时,参数max_connect_errors才能生效,否则不能生效,即

                                skip_name_resolve=OFF

                                max_connect_errors=10

你真的了解MySQL中max_connect_errors的作用么?

wait_timeout

那些年踩过的MySQL wait_timeout参数的坑

全局设置密码过期:default_password_lifetime

MySQL 5.7设置用户密码过期

other

max_connect_errors的值为10
wait_timeout参数为1800,连接超时30分钟会自动退出。

on line 

set global max_connect_errors=10;

set global wait_timeout 1800;

SET GLOBAL default_password_lifetime = 90;


add to my.cnf 

[mysqld]
interactive_timeout = 1800
wait_timeout = 1800

max_connect_errors = 10


default_password_lifetime=90

see also

MySQL配置文件