当你的Mysql忘记root密码怎么办?

本文介绍了一种通过命令行方式重置MySQL数据库管理员(root)密码的方法。步骤包括:使用特殊命令启动MySQL服务、登录数据库、更新root用户的密码以及验证新密码的有效性。

1.打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址。

打开mysql.exe

2.打开cmd命令提示符,进入上一步mysql.exe所在的文件夹。

进入上一步mysql.exe所在的文件夹

3.输入命令 mysqld --skip-grant-tables 回车,此时就跳过了mysql的用户验证。注意输入此命令之后命令行就无法操作了,此时可以再打开一个新的命令行。注意:在输入此命令之前先在任务管理器中结束mysqld.exe进程,确保mysql服务器端已结束运行。

输入命令 mysqld --skip-grant-tables

4.然后直接输入mysql,不需要带任何登录参数直接回车就可以登陆上数据库。

登陆上数据库

5.输入show databases; 可以看到所有数据库说明成功登陆。

输入show databases

6.其中mysql库就是保存用户名的地方。输入 use mysql; 选择mysql数据库。

输入 use mysql

7.show tables查看所有表,会发现有个user表,这里存放的就是用户名,密码,权限等等账户信息。

show tables

8.输入select user,host,password from user; 来查看账户信息。

要是5.7版本的话 select user,host,authentication_stringfrom user

查看账户信息

9.更改root密码,输入update user set password=password(‘root’) where user=‘root’ and host=‘localhost’;要是5.7版本的话UPDATE user SET authentication_string=‘root’ WHERE user=‘root’;

更改root密码

10.再次查看账户信息,select user,host,password from user; 可以看到密码已被修改。

再次查看账户信息

11.退出命令行,重启mysql数据库,用新密码尝试登录。

重启mysql数据库

12.测试不带密码登录mysql,发现还是能够登陆上,但显示数据库时只能看到两个数据库了,说明重启之后跳过密码验证已经被取消了。

测试不带密码登录mysql,

13.我这地方重启数据库之后之所以不带密码任然能够登录是因为我的数据库里存在设无须口令的账户。

重登数据库

END

忘记 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 实例,可能需要遵循云平台提供的特定流程来重置密码
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值