场景
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成功