root用户密码忘了怎么办啊喂!
前言
依旧是在了解MySQL的DCL
时,跟着视频学习时,老师讲了在忘记root密码的情况下的解决方法,依旧是在照葫芦画瓢后却报错了,不需要思考了,肯定又又叒是版本的问题(我使用的是8.0,视频教学中使用的是5.7),按照惯例我在搜寻、探索一番后得到了解决的方案,在此记录一下,由于我在同时使用Windows和Mac Os,所以两个系统的解决方法我都进行了学习,本篇为Mac Os的解决方法,需要Windows解决方法的小伙伴请跳转我的另一篇博客MySQL8.0 root密码忘了怎么办?(Windows)
在教学中,老师对于MySQL 5.7以前的做法是(我使用的是MySQL8.0),由于老师的教学是基于Windows的,就算是5.7版本的数据库,这套方法在Mac Os上也是不适用的,所以本篇是面向新版本MySQL8的
代码语言:javascript复制#第一步 管理员权限打开命令窗口 --> net stop mysql 停止mysql服务(指令中的'mysql'取决你的服务名)
#第二步 使用无验证方式启动 mysql 服务:mysqld --skip-grant-tables
#第三步 打开新的命令窗口,直接输入'mysql'命令,回车。就可以登录成功
#第四步 USE mysql;
#第五步 UPDATE user SET password = PASSWORD('新密码') WHERE user = 'root';
#第六步 关闭两个窗口
#第七步 打开任务管理器,手动结束 mysqld.exe 的进程
#第八步 启动 mysql 服务
#第九步 使用新密码登录
看过我上一篇文章的应该知道,PASSWORD()函数已经在新版本8.0以后废弃了,所以这种解决方法是肯定不适用的,因此又产生了这篇文章,下面我们来看看在Mac Os下MySQL 8忘记密码,如何登录及修改密码吧
第一步
打开控制台,关闭MySQL服务 使用命令:
sudo /usr/local/mysql/support-files/mysql.server stop
第二步
进入目录/usr/local/mysql/bin 使用命令:
cd /usr/local/mysql/bin
第三步
获取权限 使用命令:
sudo su
第四步
启动跳过授权表,免密登录的服务 使用命令:
mysqld_safe --skip-grant-tables &
第五步
重新打开一个命令窗口,然后免密码登录Mysql 使用命令:
mysql -u root
第六步
使用MySQL的mysql数据库 使用命令:
USE mysql
第七步
先修改root的密码为空。特别注意
authentication_string=''
的等号后是一对单引号 使用命令:UPDATE mysql.user SET authentication_string='' WHERE user = 'root';
第八步
在上一步的基础上查询root的用户分组和密码 使用命令:
SELECT host,user,authentication_string FROM mysql.user;
可以看到,在修改以后,root用户的密码已经为空
第九步
在所有命令窗用按下Control D退出编辑,然后关闭命令窗口
第十步
打开命令窗口,停止、启动一次MySQL服务 使用命令停止:
sudo /usr/local/mysql/support-files/mysql.server stop
使用命令启动:sudo /usr/local/mysql/support-files/mysql.server start
第十一步
重新登录MySQL,要输入密码的时候,什么都不用输入直接回车即可 使用命令:
mysql -u root -p
第十二步
最后一步,修改root密码 使用命令:
ALTER user 'root'@'localhost' IDENTIFIED BY '12345678';
测试
改完密码直接关闭命令窗口,然后新开一个命令窗口 使用命令:
mysql -u root -p
回车后输入密码,登录成功就说明你成功了,撒花~
本篇文章采用 署名 4.0 国际 (CC BY 4.0) 许可协议进行许可。