阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何在MySQL 8中重置root密码

205次阅读
没有评论

共计 1596 个字符,预计需要花费 4 分钟才能阅读完成。

MySQL 中的用户密码存储在用户表中,密码重置实际上是改变该表中记录的值。要在忘记密码的情况下更改密码,我们的想法是绕过 MySQL 的身份验证进入系统并使用 SQL 命令更新记录密码值。

在 MySQL 5 中,可以使用 –skip-grant-tables 选项启动 MySQL 服务,此选项将告诉服务在启动时跳过加载授权表,因此 root 用户可以使用空密码登录。

mysqld –skip-grant-tables

登录后,可以在 SQL 命令下运行更改密码

UPDATE user SET authentication_string='' WHERE user='root';

这会将密码设置为空。

但是,如果没有在 MySQL 8 中进行一些调整,似乎 –skip-grant-tables 无法正常工作。那么我们可以做些什么呢?有两种可能的选择。

创建一个 –init-file. 并使用选项 –init-file 运行 MySQL 服务。在 init 文件中,输入要更新密码值的 SQL 命令。
深入研究如何在 MySQL 8 中使用 –skip-grant-tables。

我们来看看这些选项的工作原理。

选项 1:–init-file option

此选项将指定包含要在服务启动之前执行的 SQL 命令的文件。因此,我们只需要使用命令更新此文件中的密码并使用此选项启动 MySQL 服务。密码将被重置 / 更新。

第 1 步:停止 MySQL 服务

net stop mysql

步骤 2: 创建一个 txt 文件,并将下面的命令放入

ALTER USER 'root'@'localhost' IDENTIFIED BY '';

步骤 3: 在命令行上启动服务,并使用 –init-file 选项

mysqld --init-file=/some/path/to/cmd.txt --console

完成。注意:当您遇到权限被拒绝的错误时,请以特权用户身份运行该命令。如果你看到如下错误:

2018-12-27T05:51:23.739089Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.13) starting as process 1912
2018-12-27T05:51:23.759426Z 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory.
2018-12-27T05:51:23.761196Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2018-12-27T05:51:23.762550Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-12-27T05:51:23.766230Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.13)  MySQL Community Server - GPL.

请运行以下命令初始化数据目录

mysqld --initialize --console

选项 2:使用 –skip-grant-tables 选项

与 MySQL 5 相比,MySQL 8 中还需要添加更多选项。

mysqld --console --skip-grant-tables --shared-memory

启动服务后,使用空密码登录

mysql -u root

然后执行 SQL 命令更新密码

UPDATE mysql.user SET authentication_string='' WHERE user='root' and host='localhost';

通常建议选项 1。并希望本文对你有所帮助。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1596字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中