MySQL8.0及以上忘记密码处理
停MySQL服务
systemctl stop mysqld
根据自己的启动,停止命令就行
编辑my.conf文件
whereis my.conf
一般是/etc/my.conf
在my.conf文件中添加一行 skip-grant-tables 保存退出就行
启动MySQL服务
systemctl start mysqld
连接MySQL
直接敲mysql连接
mysql
修改密码
update mysql.user set authentication_string=password('密码') where user='root';
网上都是这样的,但是会报语法错误,修改不了。
解决方法
找一个安装了8.0的mysql(直接用我的密文),执行一下下面命令
select PASSWORD('123456') from `user`
123456的密文是(星号要带上):
*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
然后执行下面命令:
update mysql.user set authentication_string='*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' where user='root';
这样就修改成功了。
退出mysql控制台。
使用修改后密码登录
去掉my.conf中之前添加的那一行,注释也行。
使用密码登录
mysql -uroot -p123456
能成功登录的。
登录成功后就可以修改用户密码了。
用户密码修改执行下面命令:
ALTER USER '用户'@'%' IDENTIFIED BY '密码';
PS:记得点赞。