Mysql 数据库ERROR 1820 (HY000): You must reset your password using ALTER USER 解决办法

Mysql 5.7数据库原来一直都能正常访问,突然访问不了,查看日志提示数据库需要修改密码,

具体解决办法如下操作:

Windows 下:

mysql的bin目录下,

mysql> use mysql;
  mysql>mysql -uroot -p密码

判断“password_expired”是否为Y

mysql> select authentication_string,password_expired from user where user='root';

 

判断“default_password_lifetime”是否为0

mysql> show VARIABLES like "%password%";

 

“password_expired”为Y的解决方法

修改“password_expired”的值:

update user set authenticatio_string=password('123456'),password_expired='N' where user='root';

 

 

“default_password_lifetime”为0解决方法

修改“default_password_lifetime”的值:

mysql> set GLOBAL default_password_lifetime=0;

重启mysql:

net restart mysqld

 

Linux下

1、查找问题
1.1、跳过数据库权限验证:

vim /etc/my.cnf

在my.cnf文件最后添加skip-grant-tables并保存

1.2、重启mysql:

sudo systemctl restart mysqld
mysql> use mysql;

1.3、判断“password_expired”是否为Y

mysql> select authentication_string,password_expired from user where user='root';

1.4、判断“default_password_lifetime”是否为0

mysql> show VARIABLES like "%password%";

 

2、“password_expired”为Y的解决方法
2.1、修改“password_expired”的值:

update user set authenticatio_string=password('123456'),password_expired='N' where user='root';​

 

2.2、恢复数据库权限验证:

vim /etc/my.cnf


在my.cnf文件最后去掉skip-grant-tables并保存

2.3、重启mysql:

sudo systemctl restart mysqld

3、“default_password_lifetime”为0解决方法
3.1、修改“default_password_lifetime”的值:

mysql> set GLOBAL default_password_lifetime=0;


3.2、恢复数据库权限验证:

vim /etc/my.cnf

在my.cnf文件最后去掉skip-grant-tables并保存

3.3、重启mysql:

sudo systemctl restart mysqld

原文链接:https://blog.csdn.net/shirenkan/article/details/105321160

posted @   龙骑科技  阅读(387)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
历史上的今天:
2016-01-08 ODBC、OLE DB、 ADO的区别
2016-01-08 OLEDB和ODBC的区别(优缺点)
点击右上角即可分享
微信分享提示