怎样在MySQL 8.4 LTS中配置最新的密码认证与安全策略

风涛小哥_5078

风涛小哥_5078

2026-09-12

1003人浏览

原创

mysql 8.4 默认认证插件为caching_sha2_password,彻底弃用mysql_native_password;新用户自动使用sha-256加密与服务端缓存,旧客户端需升级或显式启用插件才能连接。

怎样在mysql 8.4 lts中配置最新的密码认证与安全策略

MySQL 8.4 默认用 caching_sha2_password,不是 mysql_native_password

MySQL 8.4 LTS 已彻底弃用 mysql_native_password 认证插件(官方标记为 deprecated),默认启用 caching_sha2_password。这意味着:新创建的用户、未显式指定插件的 CREATE USER 或 ALTER USER 操作,都会自动使用 SHA-256 加密 + 服务端缓存机制。

这个变化直接影响客户端连接行为:

  • 旧版 MySQL Connector/J(mysql-connector-python 低版本、或未配置 RSA 密钥交换的老客户端,会报错 Public Key Retrieval is not allowed 或直接拒绝连接
  • 若强制降级为 mysql_native_password,需手动指定且违背 8.4 安全基线,不建议在新部署中采用
  • caching_sha2_password 要求传输层加密(TLS)或支持 RSA 密钥交换的明文连接;纯明文无 RSA 的连接会被拒绝

如何创建兼容 TLS/非 TLS 场景的用户

根据你的网络环境和客户端能力,选择对应方式创建用户:

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载
  • 推荐(内网+现代客户端):直接使用默认插件,启用 TLS 连接
    执行 CREATE USER 'appuser'@'%' IDENTIFIED BY 'StrongPass!2026';,然后确保客户端连接时加 --ssl-mode=REQUIRED 或配置 useSSL=true&requireSSL=true
  • 临时兼容老客户端(仅限测试/内网):显式指定插件并启用 RSA 公钥获取
    执行 CREATE USER 'legacy'@'192.168.1.%' IDENTIFIED WITH caching_sha2_password BY 'Pass123';,并在启动 mysqld 时确认 sha256_password_auto_generate_rsa_keys=ON(默认开启)
  • 绝对避免:回退到 mysql_native_password
    如真需(例如嵌入式设备无法升级),必须显式写死:CREATE USER 'olddev'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx';,但该账号无法用于远程、不支持密码轮换策略、且未来版本可能被完全移除

mysql_secure_installation 必须运行,但它不处理认证插件切换

该工具在 MySQL 8.4 中仍有效,但它的作用范围有限:

  • 它会帮你删除匿名用户、禁用 test 数据库、限制 root 仅本地访问——这些仍是基础安全动作
  • 它不会把已有 mysql_native_password 用户升级为 caching_sha2_password,也不会修改 root@'%' 的认证方式
  • 如果你之前用 MSI 安装器创建了用户,mysql_secure_installation 可能跳过部分步骤;建议安装后立即手动运行一次
  • 运行时若提示 “validate_password plugin not installed”,选 Y 安装;它会强制密码含大小写字母+数字+特殊字符,与 caching_sha2_password 的高强度要求天然匹配

检查与验证真实生效状态

别只看命令是否成功,要查数据字典确认实际效果:

  • 查用户认证方式:SELECT user, host, plugin FROM mysql.user WHERE user = 'your_user';,结果中 plugin 列必须是 caching_sha2_password
  • 查当前连接加密状态:SELECT Ssl_version, Ssl_cipher FROM performance_schema.status_by_thread WHERE thread_id = CONNECTION_ID();,非空表示 TLS 已启用
  • 查 RSA 公钥是否就绪:SHOW VARIABLES LIKE 'caching_sha2_password_public_key_path';,路径存在且文件可读,说明 RSA 支持已激活
  • 最易忽略的一点:Windows 上若用命名管道(Named Pipe)连接 localhost,caching_sha2_password 仍生效,但不会走 TLS;此时依赖的是本地进程间通信隔离,而非网络加密——这点常被误认为“没加密”

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
大数据分析工具有哪四个
大数据分析工具有哪四个

大数据分析的四个工具分别是rapidminer、Hpcc、Hadoop和Pentaho bi。大数据分析用于从各种来源生成的原始数据中提取有价值的数据。这些数据帮助我们获得有意义的见解、隐藏的模式、未知的相关性、市场趋势等等,具体取决于行业。大数据分析的主要动机是提供有价值的见解,以便为未来做出更好的决策。php中文网为大家带来了大数据分析的相关教程、以及相关文章等内容,供大家免费下载使用。

2023.06.21

4236

5

Java 大数据处理基础(Hadoop 方向)
Java 大数据处理基础(Hadoop 方向)

本专题聚焦 Java 在大数据离线处理场景中的核心应用,系统讲解 Hadoop 生态的基本原理、HDFS 文件系统操作、MapReduce 编程模型、作业优化策略以及常见数据处理流程。通过实际示例(如日志分析、批处理任务),帮助学习者掌握使用 Java 构建高效大数据处理程序的完整方法。

2025.12.08

1209

12

大数据专业学习教程
大数据专业学习教程

本专题整合了大数据专业学习相关教程,阅读专题下面的文章了解更多详细内容。

2026.01.05

223

5

python处理大数据合集
python处理大数据合集

本专题整合了python处理大数据相关教程,阅读专题下面的文章了解更多详细内容。

2026.01.05

446

22

数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

2023.10.12

3843

8

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.27

831

4

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

2024.02.23

989

5

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

2024.03.06

5661

10

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

2024.03.06

2603

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 176人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 279人学习