MySQL数据库用户密码加密存储机制_Authentication Plugin配置

张开发
2026/4/9 19:58:50 15 分钟阅读

分享文章

MySQL数据库用户密码加密存储机制_Authentication Plugin配置
MySQL 8.0默认使用caching_sha2_password插件加密密码采用SHA-256加盐哈希并缓存认证状态旧客户端因不兼容该插件而无法连接需通过ALTER USER切换为mysql_native_password或配置default_authentication_plugin。MySQL 8.0 默认用 caching_sha2_password 插件加密密码新装的 MySQL 8.0 实例用户密码不是明文存的也不是老版本的 mysql_native_password 哈希而是走 caching_sha2_password 插件——它用 SHA-256 加盐哈希并缓存认证状态来提速。这意味着旧客户端比如 MySQL 5.7 客户端、某些老版 PHP mysqli 扩展、未更新的 Navicat连不上报错通常是 Authentication plugin caching_sha2_password cannot be loaded 或直接卡在连接阶段。检查当前用户用的插件SELECT user, host, plugin FROM mysql.user WHERE user your_user;如果返回 caching_sha2_password而你的应用连不上大概率是客户端不兼容该插件要求 TLS 或安全通道下传输明文密码用于服务端再哈希所以非 SSL 连接时部分客户端会拒绝发送密码改回 mysql_native_password 的实操步骤不是所有环境都能立刻升级客户端临时或长期切回老插件更实际。注意这不是“降级安全”而是权衡兼容性SHA-256 本身更安全但若连都连不上安全无从谈起。创建用户时指定CREATE USER u1% IDENTIFIED WITH mysql_native_password BY pwd123;修改已有用户ALTER USER u1% IDENTIFIED WITH mysql_native_password BY pwd123;执行后必须 FLUSH PRIVILEGES;否则内存缓存没更新新配置不生效如果用 SET PASSWORD FOR u1% xxx;它会沿用当前用户的 plugin不会自动切插件default_authentication_plugin 配置项只影响新用户不改旧用户很多人在 my.cnf 里加了 default_authentication_plugin mysql_native_password 就以为万事大吉结果发现老用户还是连不上——因为这个配置只对后续 CREATE USER 生效已存在的用户 plugin 字段不变。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手依托大模型帮助用户记录、整理和分析音视频内容体验用大模型做音视频笔记、整理会议记录。

更多文章