MySQL忘记root密码怎么办?

本文详细介绍了如何通过安全地杀死所有MySQL进程、使用skip-grant-tables选项启动MySQL,然后更新root用户的密码,最后恢复正常启动MySQL的方法,来解决忘记MySQL root密码的问题。

MySQL如果忘记了root密码,可以很方便的找回,方法如下:

1.     先杀掉MySQL的所有进程;

#killall -TERM mysqld

 

2.    使用skip-grant-tables这个选项启动MySQL;

#/user/bin/safe_mysqld --skip-grant-tables &

 

3.  这时你就可以不使用密码登陆MySQL了;

#mysql -h localhost -u root -p

mysql> use mysql

mysql> update user set password=password('newpassword') where user='root'; 

mysql> flush privileges;

mysql> exit; 

 

4.    关闭MySQL;

 #/user/bin/mysqladmin -u root -p shutdown

Enter password:
STOPPING server from pid file /usr/local/mysql/data/ws01.pid
071218 11:30:19  mysqld ended

[1]+  Done                    /usr/local/mysql/bin/safe_mysqld --skip-grant-tables  (wd: /ceno/product/cacti/include)
(wd now: /usr/local/mysql/bin)

 

5.    正常启动MySQL; 

#/user/bin/mysqld_safe --user=mysql &

 [1] 5583
Starting mysqld daemon with databases from /usr/local/mysql/data

 

6.    现在赶快试试你的新密码吧; 

忘记 MySQL 的 `root` 用户密码的情况下,可以通过使用 `init-file` 参数来重置密码。该方法利用了 MySQL 启动时读取初始化文件的功能,通过在初始化文件中写入修改密码的 SQL 命令,从而实现密码的重置。以下是具体步骤: 1. 创建一个文本文件,并在其中写入以下 SQL 命令,用于修改 `root` 用户的密码: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; FLUSH PRIVILEGES; ``` 其中 `'新密码'` 需要替换为用户希望设置的新密码。 2. 将该文件保存为 MySQL 服务可以访问的路径,例如 `/tmp/reset_password.sql`。 3. 编辑 MySQL 的配置文件(通常是 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`),在 `[mysqld]` 部分添加或修改 `init-file` 参数,指定上一步创建的文件路径: ```ini [mysqld] init-file=/tmp/reset_password.sql ``` 4. 重启 MySQL 服务以应用更改。具体的重启命令取决于操作系统和 MySQL 的安装方式,通常可以使用以下命令之一: ```bash sudo systemctl restart mysqld ``` 或者 ```bash sudo service mysql restart ``` 5. MySQL 服务重启后,会自动执行初始化文件中的 SQL 命令,从而将 `root` 用户的密码修改为指定的新密码。 6. 修改完成后,建议删除或重命名初始化文件,以防止其被再次执行,从而避免潜在的安全风险[^1]。 此外,如果需要临时以跳过权限检查的方式启动 MySQL 服务,可以通过添加 `--skip-grant-tables` 参数来实现。这种方式适用于无法通过 `init-file` 方法重置密码的情况。具体操作步骤如下: 1. 停止 MySQL 服务。 2. 使用 `--skip-grant-tables` 参数启动 MySQL 服务: ```bash sudo mysqld_safe --skip-grant-tables & ``` 3. 使用 `mysql` 命令行工具连接到 MySQL 服务器,此时无需密码验证。 4. 执行以下 SQL 命令修改 `root` 用户的密码: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; FLUSH PRIVILEGES; ``` 5. 停止 MySQL 服务,并正常重启以恢复权限检查[^2]。 需要注意的是,上述方法适用于本地环境或具有服务器管理权限的情况。对于托管在云平台上的 MySQL 实例,可能需要遵循云平台提供的特定流程来重置密码
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值