个人主要参照了这一篇博客,但是重置密码失败,于是找回了原先密码,内容会有重复,且主要是对个人遇到的问题进行存档。mysql忘记密码如何重置密码,以及修改root密码的三种方法 - 虞岩 - 博客园 (cnblogs.com)
A、起因
问题起因是在启动mysql,执行
service mysqld start
时报错,报Redirecting to /bin/systemctl start错误,按照其它帖子,执行下面语句
systemctl restart mysqld.service
后无响应,只能通过ctrl+c强制退出,于是先去解决该问题,通过其它帖子参考执行该语句
sudo mysql_install_db --user=mysql --ldata=/var/lib/mysql
再键入
systemctl start mysqld
此时可以运行,没有再停滞,但是输入mysql -u root -p启动命令后发现密码忘了,导致一直报错误
Access denied for user 'root'@'localhost' (using password: YES/NO)
密码校验未通过
所以主要问题变为忘记密码如何找回或重置。
B、找回密码
1、 首先确保mysql处于停止状态
systemctl stop mysqld
systemctl status mysqld
systemctl stop mysqld 停止mysql运行
systemctl status mysqld 查看mysql状态,用以确认mysql是运行还是停止状态,避免之后出错。
查看Active:后面的英文(绿色块),如果是active就是在运行,是inactive(deaddd)就代表以及关闭Mysql。
2、跳过授权表,启动Mysql
打开授权表进行信息更改:
vi /etc/my.cnf
vi /etc/my.cnf 利用编辑器打开此配置文件
使用i等字母键盘进入编辑状态,进入编辑状态最下面会出现insert或者插入代表可编辑,此时可以对文档进行更改。
添加跳过命令,并且保存退出。记得最后找回密码后要删掉这条语句哦。
skip_grant_tables
编辑完成后点击esc键退出编辑状态,而后输入 :wq 进行保存退出操作。而后启动Mysql
systemctl start mysqld
3、登入mysql查找自己的密码账号并且进行解密。
此时可以使用msyql命令语句不输入密码账号直接进入,不要输入mysql -u root这样需要密码,反而会出错。
mysql
输入select语句查找所有用户名和密码,密码是用MD5加密后的,所以需要解密,可以自行搜索,也可以在以下网站里解密(免费但需要登录):https://md5.cc
select * from mysql.user;
这样,就知道自己的账号密码了。记得要把刚才的skip语句删掉哦。