mysql如何处理升级后的身份认证兼容性_mysql_native_password配置

MySQL 8.0升级后老客户端连接报错ERROR 1251,因默认认证插件改为caching_sha2_password;需对每个现有用户执行ALTER USER ... IDENTIFIED WITH mysql_native_password修改认证方式,而非仅配置default_authentication_plugin。MySQL 8.0 升级后连接报错 ERROR 1251: Client does not support authentication protocol这是最典型的症状:老客户端(比如 MySQL 5.7 客户端、某些 PHP 扩展、旧版 Navicat 或 DBeaver)连不上新 MySQL 8.0+ 实例,日志里明确提示不支持认证协议。根本原因是 MySQL 8.0 默认改用 caching_sha2_password 插件,而旧客户端只认 mysql_native_password。别急着改全局 default_authentication_plugin ------ 它只影响新建用户的默认插件,对已有用户无效真正要动的是具体用户的认证方式,不是服务端开关如果用 root 连不进,得先用 --skip-grant-tables 启动临时绕过验证,再改用户插件给指定用户切换回 mysql_native_password 认证必须登录 MySQL(哪怕用临时免密方式),对每个需要兼容的用户执行 ALTER USER。这不是配置文件开关,是数据字典层面的修改。确认当前用户用的什么插件:SELECT user, host, plugin FROM mysql.user WHERE user = 'your_user';切换认证方式:ALTER USER 'your_user'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';强制重载权限:FLUSH PRIVILEGES;注意 @'%' 要和创建用户时的 host 完全一致,'localhost' 和 '127.0.0.1' 是两个不同用户my.cnf 里设 default_authentication_plugin 没用?设了 default_authentication_plugin = mysql_native_password 确实能让新 CREATE USER 不带 IDENTIFIED WITH 时默认用它,但不影响已存在用户,也不解决老客户端连不上 root 的问题。很多人配了却没效果,就是卡在这儿。 WisPaper 复旦大学研发的AI学术搜索工具,5分钟内筛选1000篇论文

相关推荐
紫小米7 小时前
后端日志管理
python·fastapi
白雪茫茫8 小时前
监督学习、半监督学习、无监督学习算法详解
python·学习·算法·ai
つ安静与叛逆的小籹人9 小时前
小红书API:通过笔记ID获取笔记详情数据教程
笔记·python
05候补工程师9 小时前
[实战复盘] 拒绝 AI 屎山!我从设计模式中学到的“调教”AI 新范式
人工智能·python·设计模式·ai·ai编程
杨云龙UP9 小时前
SQL Server2022部署:Windows Server 2016下安装、SSMS配置、备份还原与1433端口放通全流程_20260508
运维·服务器·数据库·sql·sqlserver·2022
阿豪只会阿巴10 小时前
【没事学点啥】TurboBlog轻量级个人博客项目——项目介绍
javascript·python·django·html
墨染天姬11 小时前
【AI】cursor提示词小技巧
前端·数据库·人工智能
古月-一个C++方向的小白11 小时前
MySQL数据库——数据类型
android·数据库·mysql
qq_4135020212 小时前
如何创建CDB公共用户_C##前缀强制规则与CONTAINER=ALL
jvm·数据库·python