**法一:利用mysqld_safe模式**
1. 首先,请确保已停止正在运行的MySQL服务:
sudo systemctl stop mysql.service # 对于 systemd 系统如 Ubuntu
或者
service mysqld stop # 对于 sysvinit 类系统如 CentOS/RHEL 6.x 及以前版本
2. 创建一个临时文件来存放新设定的root用户密码(比如 `/tmp/mysql-root-passwd.txt`),并在其中输入新的密码。
3. 使用 `--skip-grant-tables` 参数启动MySQL以跳过权限验证过程:
bash
sudo mysqld_safe --skip-grant-tables &
4. 进入无密码登录状态下的mysql命令行工具:
shell
mysql -u root
5. 更新 'mysql' 数据库中的 user 表单中关于_root_用户的 password字段(从MySQL 5.7开始使用authentication_string而非password):
sql
USE mysql;
UPDATE user SET authentication_string=PASSWORD('your_new_password') WHERE User='root';
(对于MySQL 5.7及以上)
OR
UPDATE user SET Password=PASSWORD('your_new_password') WHERE User='root';
(针对旧版MySQL)
FLUSH PRIVILEGES;
EXIT;
6. 关闭并重启标准MySQL服务器进程恢复常规访问控制:
bash
sudo killall mysqld-safe
sudo systemctl start mysql.service # 同步适用systemd管理的服务
or
service mysqld restart # 若是sysvinti初始化系统的环境
现在您可以使用刚刚更改的新密码通过 `mysql -u root -p` 命令连接到MySQL数据库了。
---
**方式二:利用已有账号和现有密码进入SQL shell后更新**
如果你还能记得部分或全部当前Root密码,并能以此身份登陆,则可通过如下简化流程修改:
1. 登录至MySQL作为root用户 (假设你仍然知道原密码):
shell
mysql -u root -p
2. 在提示符处键入您的原有密码然后按回车。
3. 更改密码与上述相同,在 SQL Shell 中执行相关语句即可:
sql
USE mysql;
UPDATE user SET authentication_string = PASSWORD('new_password_here')
WHERE User = 'root';
FLUSH PRIVILEGES;
EXIT;
之后同样按照正常程序退出并重启MySQL服务以便生效变更后的密码配置。
以上就是在Linux环境中重设MySQL Root账户密码的具体步骤,务必谨慎对待此类敏感性操作,以防数据泄露及潜在的安全风险。