MySQL数据库好久没有使用了,最近几天用MySQL,发现root密码居然忘记了。不过还好,可以使用MySQL安全模式来修改root密码。具体方法如下:
1 停止MySQL服务
方法一:使用命令关闭
在黑框框里,输入如下命令,来关闭MySQL服务,如图(1)所示。
sudo /usr/local/mysql/support-files/mysql.server stop
![](https://img-blog.csdnimg.cn/52486fad68d94743a167db4b204f0ba2.png)
方法二:在[系统偏好]里关闭
![](https://img-blog.csdnimg.cn/20b1d256acf7447b8ba141f800ff5d85.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2FucWltYQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/59feb7ec01ef440c95b4501b107b5760.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2FucWltYQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/75ae3793fc5e400fb9776a9dbad22688.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2FucWltYQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
若点击[Stop MySQL Server]按钮没有反应,则在命令行里输入如下命令,避免MySQL反复重启:
sudo launchctl unload -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
sudo pkill mysqld
2 进入安全模式
## 进入MySQl的安装目录
cd /usr/local/mysql/bin
## 打开安全模式
sudo ./mysqld_safe --skip-grant-tables --skip-networking
3 修改root密码
3.1 update命令
重新打开一个黑框框控制台,输入如下命令:
## 进入MySQl的安装目录
cd /usr/local/mysql/bin
## 以root身份进入数据库,若有密码提示,则直接回车
./mysql -u root
## 使用名称为mysql的数据库
use mysql;
## 更新密码
update user set authentication_string=password('你的密码') where user='root';
## 保存密码
flush privileges;
## 退出
exit
3.2 alter命令
按Ctrl+Z 关闭安全模式的那个黑框框窗口,重新进入mySQL数据库,使用alter命令,第二次修改密码(此处密码与第一次相同),如下:
cd /usr/local/mysql/bin
./mysql -u root -p
输入刚才设置的新密码
alter user 'root'@'localhost' identified by '你的密码';
flush privileges;
exit
- 情况1)遗忘密码:
进入安全模式,密码要设置2次,第一次使用update命令, 第二次是alter命令。 - 情况2)更新密码:
若自己知道旧密码,则不用进入安全模式,只需要使用alter命令修改即可。
此方法,针对MySQL v5.7.31 ~ v8 版本。