小元
博客
详情文字在这里缓缓展开
静候你翻开这一页

Windows下Mysql8.0版本忘记密码的解决方案

Windows下Mysql8.0及其以上版本root账户忘记密码的解决方案,以及常见报错处理。

   总流程:

       停止服务 -> 安全模式 -> 免密登录mysql -> 重置密码为空 -> 退出安全模式并启动mysql服务 -> 登录mysql并修改密码为自定义密码 -> 结束


   停止服务:

# 停止mysql服务
net stop mysql

       先打开CMD窗口注意以管理员方式运行,不然可能权限不够,运行上面的指令停止你的Mysql服务,运行后如果出现提示“服务已成功停止”,请看第二步'设置安全模式'。

          服务名无效”:

                   输入stop命令后提示服务器名无效,这意味你的Mysql服务不叫这个名字,若你忘记了服务器名也没关系,你可以使用下面的指令查找你的服务器名,在停止,比如下面的示例中我的Mysql服务器名是“MySQL80”,大小写无需区分。

# 查找mysql服务
sc query | findstr /I mysql

### 输出提示
# SERVICE_NAME: MySQL80
# DISPLAY_NAME: MySQL80

# 停止mysql服务
net stop mysql80

           "拒绝访问":如果提示“发生系统错误 5 拒绝访问” 这代表你的权限不够,使用管理员的方式运行CMD在此输入即可。


   设置安全模式:

       安全模式能让我们免密登录数据库,首先输入sc qc MySQL80,mysql80是你的服务器名,不记得了就看上一步,这一步是查找mysql的路径,在输出的内容中找到“BINARY_PATH_NAME”,这个就是路径。我们复制到\bin\这里即可(图中红框所示),在输入cd 你的路径

# 步骤一 查找mysql路径
sc qc MySQL80

# 步骤二 进入mysql的bin目录下
cd C:\Program Files\MySQL\MySQL Server 8.0\bin\

1765786994090.png


       在进入bin目录后执行步骤三,注意:在输入完命令后,没任何内容输出即代表成功,此时千万不要关闭这个窗口。

# 步骤三 设置mysql为安全模式
mysqld –console –skip-grant-tables –shared-memory

       “数据目录异常”:

           如你的报错中包含“\MySQL\MySQL Server 8.0\ared-memor\”,那么这个错误通常发生在你在初始化Mysql时或之后你迁移了用于存储数据的Data目录文件所引发的错误,此时你将指令变更为下方的解决方案一栏中的指令即可,注意将 --datadir="路径"中的路径替换为你的Data目录。

# 具体错误内容
[Warning] [MY-011070] [Server] 'Enabling symbolic using --symbolic-links/-s (or equivalent)' is deprecated and will be removed in a future release.
[Warning] [MY-011070] [Server] 'Enabling symbolic using --symbolic-links/-s (or equivalent)' is deprecated and will be removed in a future release.
[System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.43) starting as process 31200
[Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\ared-memor\mysqld_tmp_file_case_insensitive_test.lower-test
[Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\ared-memor\mysqld_tmp_file_case_insensitive_test.lower-test
[ERROR] [MY-013276] [Server] Failed to set datadir to 'C:\Program Files\MySQL\MySQL Server 8.0\ared-memor\' (OS errno: 2 - No such file or directory)
[ERROR] [MY-010119] [Server] Aborting
[System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.43)  MySQL Community Server - GPL.
# 解决方案 输入下发指令,注意将里面的路径变更为你的实际Data路径。
mysqld.exe  --skip-grant-tables --shared-memory --datadir="C:\ProgramData\MySQL\MySQL Server 8.0\Data"


   登录Mysql:

       在执行完安全模式成功后,不要关闭那个窗口,此时我们另起一个cmd窗口,并进入Mysql的bin目录下,执行下方的指令完成登录,出现“mysql>”代表登录成功

# 在bin目录下进行登录,注意-p后面是空的
mysql -u root -p

# 如果提示输入密码,即Enter password,无需输入直接按下回车即可,出现mysql>则代表登录成功。

1765788364515.png



   设置密码为空:

       在登录完mysql后,依次执行下方指令,完成重置密码为空,注意这里Mysql8.0后用户密码的验证机制变更所以这里直接修改密码可能导致不成功,所以需要先将密码设置为空,在重启服务,然后再修改密码。

# 进入mysql库
use mysql;

# 设置密码为空
update user set authentication_string = '' where user = 'root';
# 输出这个就代表成功了 Query OK, 1 row affected (0.01 sec)

# 退出mysql
quit;


   重置密码:

       在退出mysql后,直接关闭着两个CMD窗口,然后重新打开一个CMD窗口,注意用管理员方式打开,然后再次进入mysql的bin目录下,然后依次执行下方的指令完成密码重置和启动服务。

# 启动mysql,提示MySQL80 服务已经启动成功则代表启动完成
net start mysql80

# 登录mysql,提示输入密码直接回车即可
mysql -u root -p

# 进入mysql库
 use mysql;

# 修改密码,提示Query OK则代表修改成功。
alter user 'root'@'localhost' identified by '新密码';

# 退出mysql
quit;

       到这里密码就修改完成了,此时我们就可以使用新密码完成登录了。


1765789630930.gif

渝ICP备2024031078号-1
本网站一切内容不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
如无意中侵犯了企业或个人的知识产权等,请及时通过电子邮件(1102905617@qq.com)告知我,本网站将会给予删除。
最新公告
😊访客你好,很高兴你的到来,本博客仍在建设中,还有些许功能尚在开发中,最后祝你在此能有所收获。
💥小元博客第三代自2025年9月上线以来,2026/08/09日迎来了它的第三次更新本次更新内容如下:
1. 文章详情页样式变更,由原来的弹窗改为单独的页面。
2. 使用Nuxt对项目进行了SEO优化,优化了搜索引擎的抓取和索引。
3. 对验签进行了优化,降低了请求被误触发拦截的概率。
4. 移动端也正在稳步推进中,在不久的将来会与大家见面。
5. 修复了首页黄历节日不显示的问题,以及其它bug的修复。