TECH NOTES / 中间件与数据

MySQL 8.0 认证方式与兼容性

原笔记 2021-09-26 · 整理于 2026-10-05

旧客户端连接 MySQL 8.0 失败时,常见做法是把账号改回 mysql_native_password。这份笔记记录过这种兼容处理,但它已经不能作为新环境的默认方案。

先确认服务器与账号配置

用有相应权限的管理账号登录,不要把口令直接写在命令后面:

bash
mysql -h localhost -u root -p
sql
SELECT VERSION();
SELECT user, host, plugin FROM mysql.user;

检查服务器版本、账号匹配的 host、所用驱动版本和完整错误信息,再决定如何处理。查询系统用户表需要相应权限。

优先更新客户端与驱动

mysql_native_password 自 MySQL 8.0.34 起弃用,在 8.4 中默认禁用,并在 9.0 移除。升级到支持服务器认证方式的客户端或驱动,通常比把账号退回旧认证插件更合适。官方认证插件说明

应用账号应按自己的部署环境设置 host 范围与最小权限;不要为了解决兼容问题直接开放远程 root,也不要把示例弱口令复制到真实数据库。

旧环境记录的边界

原笔记包含修改 root 认证、设置口令永不过期和重复刷新权限的语句。本次整理移除了这些可以被误当成通用修复的命令。如果确有旧驱动兼容需求,应先确认目标版本仍支持对应插件,再为专用测试账号制定过渡方案。

参考:原笔记中的 MySQL 8.0 兼容问题文章。

文章配图