加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL把控用户输错密码尝试次数

发布时间:2022-03-03 04:20:59 所属栏目:MySql教程 来源:互联网
导读:MySQL控制用户输错密码尝试次数: 一、生产环境MySQL死锁如何监控及如何减少死锁发生的概率 首先,死锁并不是锁死,死锁是由于两个或两个以上会话锁等待产生回路造成。 (一)死锁监控及处理方法 对于死锁的监控,各个版本都提供了innodb_print_all_deadlock
       MySQL控制用户输错密码尝试次数:

一、生产环境MySQL死锁如何监控及如何减少死锁发生的概率
 
     首先,死锁并不是"锁死",死锁是由于两个或两个以上会话锁等待产生回路造成。
 
   (一)死锁监控及处理方法
 
对于死锁的监控,各个版本都提供了innodb_print_all_deadlocks选项,打开该选项即会将死锁的日志输出到MySQL的错误日志当中,因此可以通过监控错误日志来达到监控死锁的目的。而对于MariaDB就更加简单了,MariaDB提供了Innodb_deadlocks的计数器,可以通过监控该计数器的增长来监控是否存在发生死锁。
假如线上出现死锁并且频率较高的话,务必要引起重视。由于死锁日志仅记录了最后引起死锁的两条SQL,因此并不能通过死锁日志立即定位
出死锁的原因,应当及时协同开发模拟出死锁过程,分析死锁产生原因,修改程序逻辑。
 
   (二)如何降低死锁发生的概率
 
1、尽量使用短小事务,避免大事务
2、加FOR UPDATE/LOCK IN SHARE MODE锁时,最好降低事务隔离级别,例如用RC级别,降低死锁发生概率,也可以降低锁定粒度
3、事务中涉及多个表,或者涉及多行记录时,每个事务的操作顺序都要保持一致
4、通过索引优化SQL效率,降低死锁概率,避免全表扫描导致锁定所有数据
5、程序中应有事务失败检测及自动重复提交机制
6、高并发(秒杀)场景中,关闭innodb_deadlock_detect选项,降低死锁检测开销,提高并发效率
 
二、MongoDB有哪些优秀特性及适合的场景是什么
 
    (一)优秀特性
 
1、实用性:面向类json富文档数据模型,对开发人员天然的友好
2、可用性:基于raft协议的自动高可用,轻松提供99.999%的可用性
3、扩展性:对分片集群的支持,为业务提供了友好的水平扩展
4、高性能:嵌套模型设计支持,减少了离散写,充分的物理内存利用率,避免了磁盘读
5、强压缩:WiredTiger引擎提供多种数据压缩策略,2~7倍的压缩比,大大节省了磁盘资源
 
(二)适合的场景
 
1、无多文档事务及多表关联查询需求
2、业务快速迭代,需求频繁变动行业
3、单集群并发过大无法支撑业务增长
4、数据量增长预期TB及以上存储需求
5、期望要求99.999%数据库高可用场景
 
三、 MySQL如何控制用户输错密码尝试次数?
 
(一)插件辅助
 
从官方MySQL5.7.17开始,提供了CONNECTION_CONTROL和CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS插件,该插件又提供了connection_control_failed_connections_threshold、connection_control_min_connection_delay、connection_control_max_connection_delay三个参数
 
1、connection_control_failed_connections_threshold
该参数的含义是控制登陆失败多少次数后开启延迟登陆
 
2、connectioncontrolminconnectiondelay
该参数分别表示超过失败次数后每次重新连接最小的延迟时间,延迟计算公式为(当前失败总次数-失败阈
值)connectioncontrolminconnection_delay,因此错误尝试次数越多那么延迟时间也是越大
 
3、connection_control_max_connection_delay
最大延迟时间,超过该值后客户端可重新连接
 
4、安装插件后,可通过监控Connection_control_delay_generated状态值和INFORMATION_SCHEMA下的表
 
CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS来监控错误登录尝试次数
 
(二)错误日志监控
 
通过定时扫描MySQL错误日志来捕获账号密码错误次数,达到某个阈值以后可在系统防火墙屏蔽对应的主机ip达到屏蔽账号的目的(具体操作视情况而定)
如:错误日志会显示2019-05-10T13:04:41.232259Z 5 [Note] Access denied for user 'xucl'@'127.0.0.1' (using password: YES)
 
(三)其他说明
 
1、有些同学会误以为max_connection_errors能够控制错误密码的尝试次数,其实该参数只能防止如telnet类的端口探测,即记录协议握手错误的次数
2、最后,在生产环境一定要关注aborted_clients和aborted_connects的状态,发生异常必须及时关注
 
总结
 
以上所述是小编给大家介绍的MySQL控制用户输错密码尝试次数,希望对大家有所帮助。

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!