讲师中心 微信公众号
AI工具推荐 视频效率加速

如何解决MySQL 5.7升级后由于密码过期策略导致的连接中断?

胖强同学_5531

胖强同学_5531

发布时间:2026-07-27 09:47:19

|

501人浏览过

|

来源于php中文网

原创

ERROR 1862 表示 MySQL 5.7 密码已过期,需人工干预重置密码并禁用过期策略:优先用 mysql -u root -p 登录后执行 ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass' PASSWORD EXPIRE NEVER;若无法登录,则启用 --skip-grant-tables 模式,更新 authentication_string 和 password_expired 字段并执行 FLUSH PRIVILEGES;同时确认配置文件中 default_password_lifetime = 0 并重启服务,且同步更新应用配置及 host 匹配项。

如何解决mysql 5.7升级后由于密码过期策略导致的连接中断?

ERROR 1862 登录失败:密码已过期,但客户端不支持重置流程

MySQL 5.7 默认启用密码过期策略(default_password_lifetime=90),升级后旧密码若超过有效期,部分客户端(如旧版 Navicat、某些 JDBC 驱动、PHP mysqli)会直接报错 ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords,而不是弹出密码修改提示。这类客户端无法触发 MySQL 的交互式密码重置流程,导致连接中断。

解决前提是:你仍能通过其他方式获得一次登录机会(比如本地终端、有权限的其他账号、或临时跳过验证)。不能靠客户端自动修复,必须人工干预。

  • 优先尝试用命令行登录:mysql -u root -p —— 如果还能输入旧密码并进入,说明只是过期未锁定,可立即执行 ALTER USER
  • 若连命令行也拒绝登录,说明密码已完全失效,需进入 --skip-grant-tables 模式
  • 注意:Windows 下配置文件通常是 C:\ProgramData\MySQL\MySQL Server 5.7\my.ini,不是 Program Files 下的 my-default.ini

ALTER USER 重置密码时必须同时禁用过期标记

只改密码不关过期状态,下次登录还会报错。MySQL 5.7+ 要求显式设置 PASSWORD EXPIRE NEVER 或更新 password_expired 字段,否则即使密码正确,也会在首次查询时抛出 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement。

推荐用标准 SQL 方式(兼容性好、语义清晰):

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!' PASSWORD EXPIRE NEVER;

如果已有登录但权限受限(比如没 CREATE USER 权限),可用低阶方式(仅限紧急修复):

MySQL
MySQL

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

下载
UPDATE mysql.user SET authentication_string = PASSWORD('NewPass123!'), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost';<br>FLUSH PRIVILEGES;
  • PASSWORD() 函数在 MySQL 8.0 已弃用,但在 5.7 完全可用;不要用 OLD_PASSWORD()
  • 务必执行 FLUSH PRIVILEGES,否则修改不生效
  • 修改后立刻验证:SELECT User, Host, password_expired, password_last_changed FROM mysql.user WHERE User = 'root';

永久关闭过期策略:配置文件 vs 运行时 SET GLOBAL

运行时执行 SET GLOBAL default_password_lifetime = 0 只对当前实例有效,MySQL 重启后恢复默认值(90 天)。生产环境若不想频繁维护,必须写入配置文件并重启服务。

编辑 /etc/my.cnf(Linux)或 my.ini(Windows),在 [mysqld] 段下添加:

default_password_lifetime = 0
  • 该设置影响所有新创建用户;已有用户的 password_expired 状态不会自动变,仍需单独 ALTER USER
  • 若只想让某个用户永不过期,用:ALTER USER 'appuser'@'%' PASSWORD EXPIRE NEVER;
  • 设为 0 表示永不过期;设为正整数(如 180)表示多少天后过期

升级后连接中断的典型遗漏点

很多人修完密码就以为结束了,结果应用还是连不上——往往卡在三个细节上:

  • 忘记改应用配置里的密码字段:Spring Boot 的 spring.datasource.password、Django 的 DATABASES['default']['PASSWORD'] 等必须同步更新
  • 没重启 MySQL 服务:配置文件改了但没 systemctl restart mysql 或 Windows 服务重启,default_password_lifetime 不生效
  • host 匹配错误:'root'@'localhost' 和 'root'@'127.0.0.1' 是两个不同用户,查 mysql.user 表确认实际匹配的是哪个 Host

最易被忽略的是:MySQL 5.7 升级后,部分老应用依赖的 mysql_old_password 插件已被移除,若客户端强制使用旧认证协议,即使密码正确也会拒绝连接——此时需确保用户 plugin 是 mysql_native_password,必要时执行:ALTER USER 'user'@'host' IDENTIFIED WITH mysql_native_password BY 'pass';

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

2233

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

1379

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

795

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

3092

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

5228

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

1159

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

5471

2023.08.11

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

4802

2023.08.14

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

0

2026.10.16

热门下载

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

精品课程

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

共1课时 | 187人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn