MySQL报错Client does not support authentication_升级客户端

MySQL 8.0默认认证插件改为caching_sha2_password,导致旧客户端连接失败;应优先通过ALTER USER 'user'@'host' IDENTIFIED WITH mysql_native_password BY 'pwd'降级插件,并FLUSH PRIVILEGES。MySQL 8.0 默认认证插件变了MySQL 8.0 开始,mysql_native_password 不再是默认认证方式,新用户默认用 caching_sha2_password。老客户端(比如 MySQL 5.7 客户端、旧版 PHP mysqli 扩展、某些 Python pymysql 版本)不认识这个插件,连不上就报 Client does not support authentication protocol。这不是"客户端太旧要升级",而是服务端和客户端之间认证协议不匹配。解决方向有两个:改服务端适配客户端,或改客户端支持新协议------优先选前者,尤其当无法控制客户端环境时。检查当前用户用的认证插件:SELECT user, host, plugin FROM mysql.user WHERE user = 'your_user';如果返回 caching_sha2_password,且你用的是旧客户端,大概率就是它导致的临时方案不是升级客户端,而是让该用户降级回 mysql_native_passwordALTER USER 切换认证插件(安全但需权限)用有 CREATE USER 或 UPDATE 权限的账号执行,直接改用户认证方式,客户端完全无感。这是最稳的解法,比改全局配置更精准,也避免影响其他新用户。注意不能只改 PASSWORD,必须显式指定 IDENTIFIED WITH:ALTER USER 'your_user'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';执行后记得 FLUSH PRIVILEGES;(虽然多数情况下自动生效,但保险起见)如果用户是从 localhost 连,host 要写成 'your_user'@'localhost',别漏掉单引号PHP 7.4+、Python PyMySQL 0.9.3+、MySQL Shell 8.0+ 原生支持 caching_sha2_password,这类情况建议保留新插件,升级客户端更合理my.cnf 里禁用新认证插件(仅测试环境)在 MySQL 配置文件 my.cnf 的 mysqld 段加一行,强制所有新用户都用老插件: 橙篇 百度文库发布的一款综合性AI创作工具

相关推荐
上海云盾-小余几秒前
源站隐藏实战:规避裸 IP 被直接攻击的完整方案
数据库·网络协议·tcp/ip
王小王-1235 分钟前
基于Python的车联网数据聚合与可视化分析平台设计与实现
python·车联网·新能源汽车·车联网聚合分析
南极企鹅11 分钟前
JVM-编译执行过程
jvm
叫我:松哥32 分钟前
基于Flask框架的校园二手书籍交易平台,注重校园场景的特殊需求,通过学号认证保障用户真实性
后端·python·sqlite·flask·bootstrap
namexingyun44 分钟前
开源前端生态如何成为 AI UI 生成的“燃料“:shadcn/ui、Tailwind CSS、Storybook 技术价值全解剖
java·前端·人工智能·python·ui·开源·ai编程
通信仿真爱好者1 小时前
第【17】期--考虑硬件损伤和不完美CSI的RIS-MISO系统的深度强化学习联合优化-python完整代码+参考文献
python·深度强化学习·ris
装不满的克莱因瓶1 小时前
自然语言处理常见任务——从文本理解到生成式AI的完整任务体系
人工智能·pytorch·python·深度学习·ai·自然语言处理
微学AI1 小时前
时序大模型 TimechoAI 赋能工业时序数据底层技术优势与实操
数据库·大模型·时序大模型
ptc学习者1 小时前
python 中描述符@property property 大概的样子
开发语言·python
zmzb01031 小时前
Python课后习题训练记录Day129
开发语言·python