CentOS环境下MySQL 8.0重置登录密码
Posted cgtcsdn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS环境下MySQL 8.0重置登录密码相关的知识,希望对你有一定的参考价值。
前言
安装mysql后,忘记MySQL登录密码,遇到ERROR 1819,ERROR 1396等问题,此篇博客主要记录解决这些问题的过程。
步骤
-
设置MySQL为免密码登录
vi /etc/my.cnf
(部分Linux安装了vim,其命令则改为vim /etc/my.cnf
)按【i
】键进入编辑模式,在[mysqld]下面加上“skip-grant-tables
”,按【Esc
】键,然后输入“:wq
”保存并退出vi。
-
重新启动MySQL服务(使配置生效,此步骤不能省略)
service mysqld restart
-
清空旧密码
3.1进入MySQLmysql -u root –p (无需输入密码,直接按回车键进入)
3.2切换数据库
use mysql
3.3清空密码
update user set authentication_string = '' where user = 'root';
3.4退出
quit
-
删除免密码登录代码“skip-grant-tables”
vi /etc/my.cnf
,按【i
】键进入编辑模式,删除[mysqld]下面的代码“skip-grant-tables
”,按【Esc
】键,然后输入“:wq
”保存并退出vi。 -
退出MySQL
exit
-
重设密码
6.1【同2】重新启动MySQL服务(使配置生效,此步骤不能省略)service mysqld restart
6.2进入MySQL
mysql -u root –p (无需输入密码,直接按回车键进入)
6.3切换数据库
use mysql
6.4修改密码
ALTER USER 'root'@'%' IDENTIFIED BY 'snaiL_12';
至此,大功告成,你可以通过新密码登录了。
关于报错问题如下:
1.1问题一
ALTER USER 'root'@'localhost' IDENTIFIED BY 'snaiL_123';
报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
1.2问题二
百度一番,得知是密码策略问题,默认长度为8位,于是,我将密码改为8位的:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'snaiL_123';
又报错:ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'
报错问题解决
1.ERROR 1819 (HY000)解决:
1.1查看MySQL初始的密码策略
SHOW VARIABLES LIKE 'validate_password%';
1.2调整MySQL密码验证规则,修改 policy 和 length 的值。
set global validate_password.policy=0;(“0”等价于“LOW”,含义是只验证密码长度)
set global validate_password.length=8;(因为我之前动过密码长度,这里我将密码长度设为8)
2.ERROR 1396 (HY000)解决:
2.1查看root账户的host
select user,host from user;
2.2注意看,我的host是“%”,你输入的命令可能是:
ALTERUSER 'root'@'localhost' IDENTIFIED BY 'Snail@10';
将命令改成:
ALTER USER 'root'@'%' IDENTIFIED BY 'Snail@10';
问题解决!
以上是关于CentOS环境下MySQL 8.0重置登录密码的主要内容,如果未能解决你的问题,请参考以下文章
centos7下,忘记mysql2.5.版本的登录密码,如何重置及登陆