Linux环境下重置MySQL Root账户密码的详细步骤

更新时间:2024-04-18 02:44:56   人气:4930
在 Linux 环境下,当您忘记 MySQL 的 root 用户密码或者出于安全原因需要重新设置时,可以通过以下几种方法进行操作。以下是详细的步骤:

**法一:利用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账户密码的具体步骤,务必谨慎对待此类敏感性操作,以防数据泄露及潜在的安全风险。