新特性解读 | MySQL 8.0 新密码策略(终篇)

CentOS 8 LEMP部署实战:Nginx+PHP-FPM+MySQL 8.0原生配置指南 LEMP(Linux+Nginx+MySQL+PHP)是构建高性能Web服务的基础技术栈,其核心在于事件驱动架构与系统级协同。Nginx依托epoll机制实现高并发处理,PHP-FPM通过动态进程池管理请求生命周期,MySQL 8.0默认utf8mb4字符集和caching_sha2_password认证提升数据安全与兼容性。在CentOS 8这一广泛用于企业生产环境的系统上,需特别关注SELinux上下文配置、Unix socket权限衔接及dnf包管理下的版本约束。本文聚焦真实运维场景,覆盖ThinkP 阅读详情

作者:杨涛涛

资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


我们时常会遇到的场景: 用银行卡在 ATM 机取款、在 APP 上转账、网购付款等等环节,因密码连续输错一定的次数,银行卡即被锁定而无法使用,除非拿着有效证件去银行柜台人工解锁才可正常使用。

随着MySQL 数据库被越来越多的金融场景使用,类似连续输错银行卡密码而导致的锁卡功能呼之欲出。MySQL 从 8.0.19 开始,就推出了类似策略:Failed-Login Tracking and Temporary Account Locking 。 翻译过来就是 失败登录追踪和临时密码锁定,后面我们简称为:FLTTAL 。

和之前几个密码策略不同,FLTTAL 没有全局参数匹配,只能在创建用户或者是更改用户属性时被匹配。 有两个选项:

FLTTAL 有以下几个需要注意的点:
  1. failed_login_attempts 和 password_lock_time 必须同时不为 0 ,FLTTAL 才能生效。
  2. 创建新用户不指定 failed_login_attempts 和 password_lock_time ,则默认关闭 FLTTAL 。
  3. 已使用FLTTAL的用户,管理员对其 alter user 后不改变原有密码验证策略。
  4. 一旦账户被锁定,即使输入正确密码也无法登录。
  5. 还有最重要的一点:由于 FLTTAL 对密码验证正确与否的连续性,任意一次成功登录,FLTTAL 计数器重置。例如 failed_login_attempts 设置为 3 ,前两次密码连续输错,第三次输入正确的密码,FLTTAL 计数器重置。
那接下来我们来看下如何具体使用这个密码验证策略:
  1. 对于普通用户的使用方法:

管理员创建用户 test1@‘localhost’ ,并且设置 FLTTAL 策略:失败重试次数为 3 ,密码锁定时间为 3 天。

   mysql:(none)>create user test1@'localhost' identified by 'test' failed_login_attempts 3 password_lock_time 3;
   Query OK, 0 rows affected (0.14 sec)

密码连续输错 3 次,test1@‘localhost’ 账号被锁定:

   root@ytt-ubuntu:/home/ytt# mysql -utest1  -p -S /opt/mysql/mysqld.sock
   Enter password: 
   ERROR 1045 (28000): Access denied for user 'test1'@'localhost' (using password: NO)
   root@ytt-ubuntu:/home/ytt# mysql -utest1  -p -S /opt/mysql/mysqld.sock
   Enter password: 
   ERROR 1045 (28000): Access denied for user 'test1'@'localhost' (using password: NO)
   root@ytt-ubuntu:/home/ytt# mysql -utest1  -p -S /opt/mysql/mysqld.sock
   Enter password: 
   ERROR 3955 (HY000): Access denied for user 'test1'@'localhost'. Account is blocked for 3 day(s) (3 day(s) remaining) due to 3 consecutive failed logins.

管理员解锁账户方能正常使用:(或者忘记密码,让管理员解锁账号并且重置新密码。)

   mysql:(none)>alter user test1@'localhost' account unlock;
   Query OK, 0 rows affected (0.00 sec)

用正确密码再次登录: 登录成功。

   root@ytt-ubuntu:/home/ytt# mysql -utest1  -p -S /opt/mysql/mysqld.sock -e "select 'hello world\!'"
   Enter password: 
   +--------------+
   | hello world! |
   +--------------+
   | hello world! |
   +--------------+
  1. 对于代理用户的使用方法:

对于代理用户来讲,FLTTAL 只影响代理用户本身,并不影响隐藏的真实用户。

代理用户介绍详见我之前的文章:https://mp.weixin.qq.com/s/gw_yoF57-WPcUpy18MiigQ

之前创建的代理用户:

   mysql:(none)>show grants for ytt_fake;
   +-------------------------------------------------+
   | Grants for ytt_fake@%                           |
   +-------------------------------------------------+
   | GRANT USAGE ON *.* TO `ytt_fake`@`%`            |
   | GRANT PROXY ON `ytt_real`@`%` TO `ytt_fake`@`%` |
   +-------------------------------------------------+
   2 rows in set (0.00 sec)

把真实用户插件改为mysql_native_password 让其可以正常登录:

   mysql:(none)>alter user ytt_real identified with mysql_native_password;
   Query OK, 0 rows affected (0.10 sec)

给代理用户 ytt_fake 设定 FLTTAL 策略:失败重试次数为 2 ,密码锁定时间为 7 天。

   mysql:(none)>alter user ytt_fake failed_login_attempts 2 password_lock_time 7;
   Query OK, 0 rows affected (0.14 sec)

代理用户连续输错两次密码,账号被锁住:

   root@ytt-ubuntu:/home/ytt# mysql -u ytt_fake -p -hytt-ubuntu
   Enter password: 
   ERROR 1045 (28000): Access denied for user 'ytt_fake'@'ytt-ubuntu' (using password: YES)
   root@ytt-ubuntu:/home/ytt# mysql -u ytt_fake -p -hytt-ubuntu
   Enter password: 
   ERROR 3955 (HY000): Access denied for user 'ytt_fake'@'ytt-ubuntu'. Account is blocked for 7 day(s) (7 day(s) remaining) due to 2 consecutive failed logins.

使用真实用户登录,不受代理用户影响: 真实用户可以正常登录。

   root@ytt-ubuntu:/home/ytt# mysql -u ytt_real -p -hytt-ubuntu -e "select 'hello world\!'";
   Enter password: 
   +--------------+
   | hello world! |
   +--------------+
   | hello world! |
   +--------------+
用户账号被锁定并且禁止登录后,除了管理员通过手动解锁重置计数器外,还可以有以下几种方法重置计数器:
  1. MySQLD 服务重启。
  2. 执行 FLUSH PRIVILEGES,对用户权限数据刷盘。
  3. 一次成功的账户登录。
  4. 锁定时间过期。 例如锁定时间为 7 天,7 天内管理员没做任何处理,FLTTAL 计数器重置。
  5. 管理员重新更改 failed_login_attempts 或者 password_lock_time 选项,FLTTAL 计数器重置。
总结:

这里讲解了 MySQL 8.0 的失败登录追踪和临时密码锁定策略, 结合之前介绍过的其他密码验证策略一起使用,可以弥补 MySQL 数据库在这块领域的不足。

Windows 7系统MySQL安装全攻略:版本选择、实战配置与故障排除 数据库作为现代应用的核心数据存储与管理组件,其部署与配置是开发与运维的基础技能。MySQL作为最流行的开源关系型数据库之一,以其高性能、高可靠性和易用性被广泛应用于各类场景。理解其在不同操作系统环境下的部署原理,尤其是处理老旧系统或特定环境下的兼容性问题,对于保障业务连续性和学习迁移至关重要。本文将聚焦于在仍有一定存量的Windows 7操作系统上部署MySQL的完整流程,深入分析MySQL 5.5、5.7、8.0等主流版本与32位/64位系统的兼容性矩阵,并提供从MSI与ZIP安装包选择、Visual C 阅读详情

相关推荐

计算机组成原理实验二 运算器组成实验

事实上,ALU的设计是在全加器的基础上,对全加器功能的扩展来实现符合要求的多种算术/逻辑运算的功能。为了实现多种功能的运算,An、Bn数据是不能直接与全加器相连接的,它们受到功能变量F3—F1的制约,因此,可由An、Bn数据和功能变量F3-F1组合成新的函数Xn 、Yn,然后,再将Xn 、Yn和下一位进位Cn-1通过全加器进行全加运算以实现所需的运算功能。AC寄存器可用来存储ALU的输入以实现两个操作数的运算操作,也可以用来存储来自ALU的结果,以将这些结果反馈给ALU以进行更多的处理。

qq_63574533的博客 1449

MySQL8.0 密码管理与密码策略

MySQL8.0 密码管理与密码策略 说明 MySQL 的版本在 8.0 以上。本文使用的版本是 8.0.13 这个版本。 mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.13 | +-----------+ 1 row in set 密码管理 在 mysql 8.0 中新增了三个变量,用于对密码的管理: ## 新密码不能和前面三次的密码相同 password_history = 3 ; #

qq_38766930的博客 2586

51雾化器实现

1. 雾化器简介 雾化器是将试液雾化的一种器械。雾化器是原子化系统的重要部件,其性能对测定的精密度和化学干扰等产生显著影响。因此要求雾化器喷雾稳定、雾滴细小、均匀和雾化效率高。雾化器的类型有超声雾化器,空气压缩式雾化器,网式雾化器。超声雾化器因其价格合适,适合家用,被广泛应用于加湿器,香薰机等各种小家电,也在医疗领域有很多的应用。家用雾化器的主要器件是一枚雾化片。 家用雾化器分为两种不同类别雾化片,实孔雾化片和微孔雾化片,这两种的喷雾方法和工作原理是有所不同的。不同的雾化片需要特定的频率才能工作。 实孔雾

qq_42415953的博客 2万+

新特性解读 | MySQL 8.0 新密码策略(上)

作者:杨涛涛 资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 引言 这里来介绍下MySQL 8.0 版本自带的新密码验证策略。 正文 我们非常熟悉这样的模式: 用户想更改自己密.

ActionTech的博客 604

contextcapture多区块点云_多源点云数据融合的建筑物精细化建模

本文内容来源于《测绘通报》2020年第8期,审图号:GS(2020)3611号多源点云数据融合的建筑物精细化建模王树臻1, 郑国强1, 王光生1, 胡玉民2, 张德怀2, 亓伟3 ...

weixin_36301639的博客 1824

力软敏捷开发框架源码7.0.6旗舰版 JNPF开发平台3.4.5 企业版 旗舰版

JNPF作为作为一款深受用户喜爱的低代码产品,凭借雄厚的科研技术力量、丰富的软件开发项目经验、严谨的项目开发流程和高质量的售后服务,已成功帮助千家企业完成数字化项目,建立了覆盖不同行业客户和不同发展阶段的软件产品服务体系。

huoooos0的博客 1839

【得物技术】MySQL 8.0:新的身份验证插件(caching_sha2_password)

从 MySQL 8.0.4 开始,默认身份验证插件从 mysql_native_password 更改为 caching_sha2_password。相应地,现在的 libmysqlclient 将使用 caching_sha2_password 作为默认的验证机制。 为什么这样做呢? MySQL 5.6/5.7 的默认密码插件一直以来都是 mysql_native_password。其优点是它支持 challenge-response 机制,这是非常快的验证机制,无需在网络中发送实际密码,并且

SmartCodeTech的博客 5344

从特斯拉到蔚来:拆解主流智能汽车的车联网架构,看它们如何实现‘车、路、云’协同

本文深度解析了特斯拉、蔚来等主流智能汽车的车联网架构,详细拆解了其‘车、路、云’协同的技术实现。从车内网络、车际通信到云端协同,分析了通信技术、系统架构等关键技术选择,揭示了不同厂商如何通过差异化布局构建竞争优势。

weixin_42525289的博客 580

mysql8 通用解决复杂密码问题修复

mysql8.0修改加密方式和设置简单密码 1、安装mysql8.0 2、查看临时密码:grep "A temporary password" /var/log/mysqld.log 3、登录及输入密码:mysql -u root -p 输入密码 4、进行权限查看: SHOW VARIABLES LIKE 'validate_password%'; 5、修改密码长度限制:set global validate_password.length=4; 6、修改密码加密方式限制:set ...

naoyin9101的博客 862

Dify工作流教程|以抓取网页并更新知识库为例详细讲解工作流编排过程(附DSL文件)

{"name": "{新建的title变量}","text": "新建的content变量","indexing_technique": "high_quality","process_rule": {"mode": "automatic"}}有没有很痛苦,明明添加书签的网页,当你想阅读的时候,总是找不到或者好不容易找到了,发现网页404了。如果有个小工具,直接能把你输入的链接内容抓取下来,并且加入到你的知识库中,你说他香不香。无法获取授权的,也可以使用网页抓取工具,这个是免费的,抓取效果也可以。

同名公众号:dify实验室 1万+

基于知识图谱的时空事件关联推理能力培养

随着信息技术的飞速发展,大量的时空事件数据被产生和收集,如交通流量数据、气象观测数据、社交媒体上的地理定位信息等。这些数据蕴含着丰富的知识和规律,但要从中提取有价值的信息并非易事。基于知识图谱的时空事件关联推理旨在通过构建知识图谱,将时空事件数据进行整合和关联,从而实现对事件之间潜在关系的挖掘和推理。本文的目的是系统地介绍基于知识图谱的时空事件关联推理能力的培养方法,包括核心概念、算法原理、数学模型、实际应用等方面。

操作系统内核探秘的博客 750

牛年伊始,你的mysql密码安全吗?

前言: 新年伊始,你的数据库是不是该巡检了?一般巡检都会关心密码安全问题,比如密码复杂度设置,是否有定期修改等。特别是进行等保评测时,评测机构会要求具备密码安全策略。其实 MySQL 系统本身可以设置密码复杂度及自动过期策略的,可能比较少用,大多数同学并未详细去了解。本篇文章我们一起来学习下如何设置数据库账号密码复杂度及自动过期策略。 1.密码复杂度策略设置 MySQL 系统自带有 validate_password 插件,此插件可以验证密码强度,未达到规定强度的密码则不允许被设置。My...

Hsuesh的博客 502

Unity之Timeline教程

Unity Timeline是Unity的一种时间轴编辑器工具,用于制作和管理游戏中的动画、剧情以及事件触发。它提供了直观的界面,使得开发者可以通过拖放操作轻松创建和编辑时间轴。Activation Track:用于控制物体的激活状态。可以在轨道上添加关键帧,控制物体的激活和非激活状态。Animation Track:用于处理物体的动画。可以在此轨道上添加关键帧,编辑物体的动画状态。Audio Track:用于处理场景中的音频。可以管理音频的播放、暂停、淡入淡出等操作。

TxNet 9439

新特性解读 | MySQL 8.0 新密码策略(中)

作者:杨涛涛 资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 本篇继续介绍 MySQL 8.0 的新密码验证策略。 假设有这样的需求: 管理员分别创建了一个开发用户与运维用户,.

ActionTech的博客 3055

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

MySQL 8.0 新密码策略的细节补充

我们先看下文档的描述,翻译过来是:可以⽤这 2 个参数来控制历史密码可被重用的策略:一个是基于次数策略,一个是基于时间策略。爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。基于这个逻辑去理解还造成了另⼀层误解:新配置的密码全局属性对于历史已创建的⽤户不⽣效。这篇文章主要针对密码相关的几个参数的使用细节做一些验证和分析,给大家分享下实际使用的经验,首先我们看下 MySQL 8.0 版本的。

ActionTech的博客 292

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

新特性解读 | MySQL 8.0 新密码策略(下)

作者:杨涛涛 资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 今天我们来继续介绍 MySQL 8.0 的新密码策略, 分别为双密码策略和内置随机密码生成。 第一,双密码策略: .

ActionTech的博客 668

MySQL 8.0新密码策略的细节场景讲解

技术社群的这篇文章《新特性 | MySQL 8.0 新密码策略的细节补充》,讲解介绍了MySQL 8.0数据库新密码策略的一些细节场景,值得借鉴学习。MySQL 8.0 截止到目前已经发布到了 8.0.34 版本,经过一系列的版本更新,对于密码方面做了较多的加强。这篇文章主要针对密码相关的几个参数的使用细节做了一些验证和分析,给各位分享下实际使用的经验,首先我们看下 MySQL 8.0 版本的C...

bisal的专栏 224

MySQL8.0版本新特性学习

目录 变更内容: 账户与安全 用户创建和授权 认证插件更新 密码管理 角色管理 优化器索引 隐藏索引(不可见索引) 降序索引 函数索引 通用表表达式 非递归CTE 递归CTE 递归限制 窗口函数(分析函数) InnoDB增强 集成数据字典 原子DDL操作 自增列持久化 死锁检查控制 锁定语句选项 其他改进功能 JSON增强 内联路径操作符 JSON...

qq_43287952的博客 1157

新特性解读 | MySQL 8.0.28 用户连接内存限制

作者:杨涛涛资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任...

杨建荣的学习笔记 1055

CentOS 7安装MySQL 8.0完整指南:从官方仓库配置到远程访问安全部署

数据库作为现代应用的核心组件,其安装与配置是系统管理员和开发者的基础技能。在Linux环境中,通过包管理器安装软件看似简单,但涉及数据库这类关键服务时,需要理解其底层原理与安全机制。MySQL作为最流行的开源关系型数据库,其安装过程涉及仓库配置、版本选择、安全初始化等多个技术环节,正确的部署方式直接影响后续的稳定运行与数据安全。特别是在CentOS 7这类企业级Linux发行版上,系统默认仓库与官方源的差异、MySQL 8.0引入的新身份验证插件caching_sha2_password,以及防火墙与远程访

weixin_33859231的博客 325

MySQL 安全性和账户管理功能增强

MySQL 8.0 系列在安全性和账户管理方面进行了全面升级,重点增强了身份认证、密码策略、权限控制和审计日志等功能。主要改进包括:默认采用更安全的caching_sha2_password认证插件;支持多因素认证(MFA)和FIDO生物识别;密码管理新增字符修改比例、密码历史、双密码等策略;权限表改为InnoDB实现原子性操作;新增角色管理和部分撤销权限功能;审计日志支持定期刷新和自定义存储库;数据脱敏组件化并支持多字节字符。

m0_37607945的博客 954

MySQL 8.0.32 安装配置全攻略:从零到精通的避坑指南

数据库是应用开发与数据存储的核心组件,其安装与配置是掌握数据库技术的第一步。MySQL作为最流行的开源关系型数据库管理系统,以其高性能、高可靠性和丰富的功能生态,成为网站后台、应用开发及学习实践的首选。其核心原理基于客户端-服务器架构,通过SQL语言进行数据操作与管理。在技术价值上,一个稳定且配置得当的MySQL实例是保障数据一致性、支持高并发访问和实现业务逻辑的基础。尤其在开发测试与中小型生产环境中,正确的安装配置能有效避免后续的性能瓶颈与安全隐患。本文聚焦于MySQL 8.0.32这一经典稳定版本,针对

weixin_34168880的博客 368

CentOS 7 上 MySQL 5.7 安装配置全指南:从零到生产环境部署

关系型数据库是数据持久化存储与管理的核心组件,其通过结构化查询语言(SQL)进行数据操作,并遵循ACID原则保证事务可靠性。在Linux服务器环境中,通过包管理器(如YUM)安装数据库软件是标准实践,它能自动处理依赖关系并遵循系统目录规范。对于企业级应用,数据库的稳定部署与安全配置具有重要技术价值,直接影响到应用的可用性与数据安全。在Web服务、企业后台系统等场景中,数据库作为后端存储基石,其安装后的初始化、访问控制及性能参数调优是关键步骤。本文聚焦于在CentOS 7操作系统上,使用官方YUM仓库部署广泛

weixin_33816946的博客 409

Fedora 22 手动搭建 LAMP:systemd 与模块化 Web 基础设施实践

LAMP(Linux + Apache + MySQL + PHP)是 Web 服务最经典的技术栈,其核心在于操作系统层、Web 服务器、数据库与脚本引擎的协同机制。理解 Apache 的 systemd 服务生命周期管理、MySQL 的 socket 通信与权限模型、PHP 的模块化加载(如 php-mysqlnd 驱动)及配置分层(/etc/php.d/),是掌握 Web 应用底层运行逻辑的关键。这些能力支撑着高可用部署、安全加固、性能调优与故障排查等工程实践,广泛应用于教育 SaaS、信创环境验证、遗

322

mysql case默认_MySQL设置密码复杂度

MySQL5.6.6版本之后增加了密码复杂度验证插件validate_password,相关参数设置的较为严格。使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置。1、密码验证插件安装要使MySQL服务器可以使用,插件库文件必须位于MySQL插件目录(plugin_dir系统变量指定的目录)中。默认在MySQL安装目录下$MYSQL_HOME/lib/plugin...

weixin_39617252的博客 309
上一篇: 技术分享 | 两个单机 MySQL 该如何校验数据一致性
下一篇: 第49问:如何快速判断 IO 延迟对 MySQL 性能的影响
爱可生开源社区
博客等级 码龄8年 1936粉丝 1004原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值