Mysq8l在Centos上安装后忘记root密码如何重新设置

发布时间 2023-11-29 10:20:25作者: 霸道流氓

场景

Mysql8在Windows上离线安装时忘记root密码:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/133809385

如果是在Windows上忘记密码可以参考上面。

如果在Centos中安装mysql可以参考下面。

CentOS7中安装Mysql8并配置远程连接和修改密码等:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/131807269

如果按照上面在Centos中安装msyql后忘记root密码可以这样重新设置

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi

实现

1、停止mysql服务

systemctl stop mysqld

2、以安全模式启动mysql

mysqld_safe --skip-grant-tables &

3、修改mysql配置文件

nano /etc/my.cnf

在配置文件中[mysqld]下添加如下,来跳过密码验证

skip-grant-tables

 

nano操作,使用ctrl+o保存文件,使用ctrl+x退出nano。

4、重新启动mysql服务

systemctl start mysqld

进入mysql命令行后,执行重置密码的语句

FLUSH PRIVILEGES;

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aa_123456';

FLUSH PRIVILEGES;

密码要设置复杂,包含大小写字母、符号和数字,不然会提示:

Your password does not satisfy the current plicy requirements

5、恢复mysql配置文件,将上面添加的跳过密码验证的配置去掉。

 

然后停止mysql服务

systemctl stop mysqld

再启动mysql服务

systemctl start mysql

此时如果提示:

Job for mysql.service failed because the control process exited with error code ,See "systemctl status mysqld.service" and

"journalctl -xe" for details.

 

那么就根据其提示查看

systemctl status mysqld.service

 

这里的一个原因是虚拟机分配的内存和磁盘空间过小导致,也有可能是其它原因导致,仅供参考。

6、分配大的内存和硬盘空间并重启虚拟机后,连接mysql成功