当你忘记了 MySQL 数据库中 root 用户的密码,或需要重新设置密码时,可以通过跳过认证机制的方式来重置密码。本文将介绍如何在跳过认证的情况下重置 root 密码,并确保本地和远程登录的安全性。
1. 跳过认证机制启动 MySQL
首先,通过跳过 MySQL 的认证机制启动数据库,这样你可以无需密码直接登录并修改 root 用户的密码。
步骤:
1. 停止 MySQL 服务:
在执行此操作之前,需要先停止 MySQL 服务。
sudo systemctl stop mysql
2. 以 --skip-grant-tables 模式启动 MySQL:
这将使 MySQL 以跳过权限表的模式启动,从而允许你无需密码登录。
sudo mysqld_safe --skip-grant-tables &
也可以在mysql的配置文件里加入skip-grant-tables
3. 登录 MySQL:
此时你可以无需密码直接登录 root 用户。
mysql -u root
2. 修改 root 用户密码
在成功登录 MySQL 之后,你可以通过以下步骤来重置 root 用户的密码。
修改本地登录密码
首先,修改用于本地登录的 root 用户密码。
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
修改远程登录密码
然后,修改允许远程登录的 root 用户密码。
ALTER USER 'root'@'%' IDENTIFIED BY '新密码';
3. 恢复正常的 MySQL 运行模式
完成密码修改后,你需要重新启动 MySQL,并取消跳过权限表的模式。
// 退出 MySQL
exit; 或 quit;
// 停止 MySQL 服务:
sudo systemctl stop mysql
// 重新启动 MySQL:
sudo systemctl start mysql
// 刷新权限(可选)
FLUSH PRIVILEGES;
结束
网友评论