1. 前言
在使用MySQL时,忘记密码是一件非常烦人的事情。MySQL提供了几种重置密码的方法,本文介绍使用root账号和grant command两种方法重置MySQL 5.7的密码。
2. 重置密码方法一:使用root账号重置
2.1 MySQL安全模式下启动
使用该方法,需要了解使用MySQL的安全模式重置root密码。步骤如下:
停止MySQL服务器
sudo systemctl stop mysql
进入MySQL安全模式
sudo mysqld_safe --skip-grant-tables &
进入MySQL
mysql -u root
2.2 重置密码
重置root密码,步骤如下:
选择MySQL库
use mysql;
更新root账户密码
update user set authentication_string=password('new_password') where user='root' and host='localhost';
刷新MySQL特权表
flush privileges;
退出数据库
quit;
然后,可以使用新密码登录MySQL。
3. 重置密码方法二:使用grant command重置
3.1 修改MySQL配置
MySQL有一个默认配置文件 /etc/my.cnf
。我们可以修改该文件,启动MySQL的时候就会加入命令行参数,以允许无密码的root账户连接。用文本编辑器打开/etc/my.cnf
文件,添加一下内容:
[mysqld]
skip-grant-tables
3.2 重启MySQL
之后,重启MySQL:
sudo systemctl restart mysql
3.3 重置密码
使用如下命令,在MySQL命令行下更新root密码:
mysql -uroot mysql
mysql> update user set authentication_string=PASSWORD("new_password") where User='root';
mysql> flush privileges;
mysql> exit;
3.4 恢复MySQL配置
现在,MySQL的root密码已重置。要恢复MySQL配置,请删除 /etc/my.cnf
文件中添加的skip-grant-tables
行,并保存该文件。之后,重新启动MySQL服务器以加载正确的配置:
sudo systemctl restart mysql
4. 结束语
现在,您已经掌握了两种重置MySQL 5.7密码的方法了。上述方法可以解决忘记密码的问题,但请注意必要的安全措施,以确保您的MySQL服务器安全。