# MySQL Workbench 连接失败、root密码遗忘完整解决实录(超详细小白向) ## 前言 最近做数据库安全实验时踩了巨多坑:打开MySQL Workbench一直显示`unconnected`,执行SQL按钮全是灰色,折腾半天才发现是忘记root登录密码,重置密码过程中又接连遇到目录权限、服务启动失败、3306端口连接拒绝等报错。 整理一套从零到能正常写实验SQL的完整流程,全程无晦涩术语,新手跟着复制命令就能搞定。 ## 一、故障现象说明 1. MySQL Workbench左上角状态栏显示`unconnected`,工具栏执行、新建表等按钮全部灰色无法点击; 2. 双击数据库连接弹窗需要输入root密码,完全记不清当初设置的密码; 3. CMD尝试免密登录时报错:`Can't connect to MySQL server on 'localhost:3306' (10061)`; 4. 执行`mysqld --skip-grant-tables`启动数据库时,出现`Failed to set datadir`目录权限报错。 ## 二、前置操作:停止MySQL系统服务 ### 操作步骤 1. 快捷键`Win+R`,输入`services.msc`回车,打开Windows服务管理器; 2. 在服务列表中找到名称含`MySQL`的服务(常见MySQL80); 3. 右键服务,点击**停止**,等待服务状态切换为「已停止」,再进行后续操作。 > 关键提醒:修改数据库权限、重置密码前,必须关闭正在运行的MySQL服务,否则端口占用会导致所有命令失效。 ## 三、方案一:官方安全重置法(解决启动失败、目录报错) ### 1. 管理员身份打开CMD 1. 按下键盘Win键,搜索框输入`cmd`; 2. 右键「命令提示符」,选择**以管理员身份运行**(普通权限会报目录访问拒绝)。 ### 2. 切换至MySQL安装的bin目录 复制下方命令粘贴至CMD,回车执行: ```bash cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" ``` 执行成功后,命令行前缀会变为`C:\Program Files\MySQL\MySQL Server 8.0\bin>`。 > 补充说明:引号不能省略,因为`Program Files`文件夹名称中间存在空格,不加引号系统无法识别完整路径。 ### 3. 初始化数据库,清空root原始密码 粘贴命令回车执行,等待程序自动运行完毕,无红色报错即成功: ```bash mysqld --initialize-insecure --console ``` 这条命令作用:重置MySQL权限文件,直接清空root账号密码,规避传统`skip-grant-tables`模式的目录权限bug。 ### 4. 后台启动MySQL服务(窗口不可关闭) 继续在当前CMD输入命令回车: ```bash mysqld --console ``` 执行后窗口会持续输出日志并卡住不动,**不要关闭该CMD窗口**,关闭则数据库服务直接终止,后续无法登录。 ### 5. 新开第二个管理员CMD免密登录 1. 重新搜索cmd,再次右键以管理员运行,打开全新黑窗口; 2. 再次切换bin目录: ```bash cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" ``` 3. 免密登录root用户: ```bash mysql -u root ``` 登录成功标志:命令行前缀变为`mysql>`,代表进入MySQL内部命令环境。 ### 6. 设置新root密码(固定p888888,方便实验记忆) 在`mysql>`后逐行输入,每一行输完按下回车: ```sql -- 切换系统权限库 USE mysql; -- 修改root本地登录密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'p888888'; -- 刷新权限配置,立即生效 FLUSH PRIVILEGES; -- 退出MySQL命令环境 exit; ``` 每一行执行后提示`Query OK, 0 rows affected`代表操作成功。 ## 四、恢复正常使用模式 1. 关闭两个CMD窗口; 2. 重新打开服务管理器`services.msc`,右键MySQL服务,点击**启动**; 3. 等待服务状态变为「正在运行」,密码重置流程全部结束。 ## 五、MySQL Workbench正常连接数据库 1. 打开MySQL Workbench软件,回到首页连接列表; 2. 双击本地数据库连接(Local Instance MySQL80); 3. 弹窗密码输入框,填入新密码`p888888`; 4. 勾选`Save password in vault`保存密码,点击OK; 5. 连接成功后左上角`unconnected`字样消失,工具栏所有灰色按钮全部点亮,可正常编写、执行SQL语句。 ## 六、配套数据库实验测试代码(MySQL标准语法) 连接成功后新建查询标签页,粘贴代码执行,完成数据库用户创建实验: ```sql -- 切换MySQL系统库,用于创建登录用户 USE mysql; -- 创建实验用户user01、user02,统一密码p888888,允许任意设备访问 CREATE USER 'user01'@'%' IDENTIFIED BY 'p888888'; CREATE USER 'user02'@'%' IDENTIFIED BY 'p888888'; -- 给两个用户分配orderdb订单库全部操作权限 GRANT ALL PRIVILEGES ON orderdb.* TO 'user01'@'%'; GRANT ALL PRIVILEGES ON orderdb.* TO 'user02'@'%'; -- 刷新权限配置 FLUSH PRIVILEGES; -- 切换至实验数据库orderdb,后续操作默认在此库执行 USE orderdb; ``` 全选代码,点击工具栏闪电图标执行,下方输出`Query OK`即代表实验代码运行成功。 ## 七、高频踩坑问题总结 1. **报错:不是内部或外部命令** 原因:漏写`cd`切换目录命令,直接粘贴文件夹路径;解决:必须以`cd "完整路径"`格式切换目录。 2. **报错:Can't connect to MySQL server on 'localhost:3306' (10061)** 原因:MySQL服务未启动、启动服务的CMD窗口被关闭;解决:严格按照流程保持服务CMD窗口打开,或在服务管理器启动系统MySQL服务。 3. **mysqld启动提示目录、文件权限报错** 原因:传统`--skip-grant-tables`模式对带空格系统目录兼容性差;解决:改用文中`--initialize-insecure`初始化重置方案。 4. Workbench按钮全灰色 核心根源:未成功连接MySQL服务器;解决:完成密码重置后正常登录连接即可。 ## 写在最后 很多同学做数据库实验卡在连接、密码环节,网上大部分教程只提供`skip-grant-tables`方案,很容易出现目录兼容报错。本文这套初始化重置法适配Windows所有MySQL8.0版本,全程避开权限坑,重置完成后可以直接开展用户授权、角色管理等数据库安全性实验。 如果操作过程中遇到红色报错,可以复制完整报错信息对照文章故障总结排查,基本都能一次性解决。
MySQL Workbench 连接失败、root 密码遗忘完整解决实录