MySQL发生系统错误2 系统无法找到指定文件

本文针对MySQL服务无法启动的问题,详细介绍了排查步骤与解决方案,包括环境变量检查、服务重装及配置文件修改等。

注意:该博客编写时间略为久远,对新版MySQL已不适用,仅供参考

一、问题的发生
今天要用到数据库,像往常一样打开“开始”菜单,在“命令提示符”鼠标右键,选择“以管理员身份运行”,在弹出的命令行窗口里输入“net start mysql”,等待着显示“MySQL 服务启动成功”。。。谁料到,这次居然显示“发生系统错误2 系统无法找到指定文件”!(喷血.jpg)
这不科学,昨天和前天还有大前天明明还能正常地打开MySQL的!!!

二、问题的分析
我重新检查了一遍,看看环境变量是否配对,服务是否安装

PS: 顺便说一下,我的电脑是win10系统,mysql版本是5.6

环境变量
鼠标右键单击“此电脑”,选择“属性”,点击“高级系统设置”,点击“环境变量”
在上半部分的“delll的用户变量(U)”里双击“path”那行,弹出编辑path的方框,如下图:
这里写图片描述
在下半部分的“系统变量(S)”里,发现“MYSQL_HOME”变量存在,且地址正确地对应于 mysql 的 文件夹的地址,如下图:
这里写图片描述
发现环境变量的路径(用红色圈圈起来那句)已经存在

不过想想也是,环境变量都没配好的话,我之前怎么可能打得开mysql,所以这次的问题显然跟上面的无关!
这里写图片描述

服务是否安装
用管理员身份运行命令行窗口(这里不用管理员身份也可以,但我个人习惯用,可能是因为我在linux下安装和修改东西时总是加上 sudo 否则就不安心养成的习惯),再用 cd 命令进入到mysql的 bin 文件夹的目录里,如图:
这里写图片描述
当然每个人的mysql的 bin 文件的安装目录都会有些微不同,自己写自己正确的路径就行。
Here,输入“mysqld --remove”命令将原本已安装的mysql服务卸载掉,再输入“mysqld --install”命令将服务重新安装(先卸载旧的,再重装一个新的,这也是一般人平时遇到软件运行不成功时想到的一个通用方法吧)。同时要注意,这两条命令的形式是这样的:

mysqld --remove
mysqld --install
  • "mysqld"与后面的小横杆之间有一个空格,小横杆是两个的,博客正文里显示得不清楚;
  • 眼疾手快的同学看清楚了,是"mysqld",不是“mysql”!

运行完第一条命令显示删除成功后,输入运行“mysqld --install”时,居然提示服务已存在。正常的话,删除服务之后再安装,应该显示的是服务安装成功,但是这里不是,看来这里有点蹊跷
这里写图片描述

然后再在以管理员身份运行的命令行窗口里输入“net start mysql”,这时候显示的是“错误1058 系统无法启动服务,原因可能是已被禁用或与其关联的设备没有启动”。。。还是启动不了,而且错误跟一开始的错误不同了!
这里写图片描述

然后又百度了一会,发现有不少答案里都提到了改“my.ini”这个配置文件。那就尝试一下吧。结果发现我的“MySQL Server 5.6”文件夹里没有“my.ini”,只有“my-default.ini”。。。
这里写图片描述
又“冷静分析”了一下,发现在C盘的“ProgramData”文件夹里也有个“MySQL”文件夹,在里面也有“MySQL Server 5.6”文件夹,点开后发现了“my.ini”(真是麻烦)
这里写图片描述
在这里如果有人找不到“ProgramData”文件夹的话,不要着急,这个文件夹平时是隐藏起来的,在C盘浏览文件的窗口上方的菜单栏里,点“查看”,勾选“隐藏的项目”,即可看到它:
这里写图片描述

找到“my.ini”文件之后,用记事本之类的编辑工具编辑,在代码的最后,添加如下代码:
这里写图片描述
这里Server的位置写你们电脑实际的mysql的mysqld的位置

OK,这步做完之后,在命令行的bin文件夹目录里重新运行一遍

mysqld --remove
mysqld --install

然后再输入

net start mysql

就能成功运行了!!!

但是,登录mysql的账号时,出现了“Access denied for user ‘root’@‘localhost’ (using password: YES”的问题,原因应该是用户名与密码不对应(真是不让人省心)
怎么办?只能修改root用户的密码了(我是刚学数据库的学生,目前只会使用root身份登录数据库)
在命令行输入 mysql -u root mysql 进入mysql服务,然后按照如下方式输入相关代码:
(newpassword那里填你新设的密码)

mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’; 
mysql> FLUSH PRIVILEGES; 
mysql> quit 
/etc/init.d/mysqld restart #(最后这句我不记得要不要运行了,先尝试着运行,出错的话也不用想太多)

OK,现在就能正式用自己设的密码登录数据库了!
问题总算得到解决了。在这里感谢一下百度到的两位大神的博客经验,本文参考了他们的方法:关于MySQL的1058的错误mysql登录报错"Acess denied for user ‘root’…"

但是登陆后发现以前创建的数据库和数据表都没了,上课跟着老师一起敲的sql语句记录也没了。。。看来要养成随时备份重要文件的习惯。。。

在此我思考一下出现这一系列问题的原因。因为我之前几天都能正常地使用 MySQL ,怎么今天就突然不行了?我觉得最大的可能就是昨天晚上使用360进行了一次“立即体验”,因为那时候它提醒“已28天没有体验,建议立即体验!”,然后我就“体验”了一把,结果显示电脑评分为 0 分(喷血!第一次得0分!)然后开始修复,修复之后得了100分,强迫症表示好爽!现在想来,真的不是故意黑360,但这是我这种初学者对这个问题能想到的唯一的解释了。。。

PS: 这个问题修复后的第二天,用360体验,又显示得 0 分!
这里写图片描述
算了,修复吧,我也很无奈
没错,再次修复后,打开数据库时又遇到上述的问题了。很尴尬。我在考虑该不该把360给卸了。

像我这种没代码天赋的小白,学这方面的东西时,真是得经常折腾一下下。但没办法,对我来说,很多时候,都只能靠自己,反正除了百度,没什么人会帮自己,习惯就好╮(╯▽╰)╭。
今天是中秋节,国庆中秋连着放,8天长假(开心)

<think> 首先,用户的问题是:"我想查解决 'net start MySQL' 命令执行时出现 '发生系统错误 2 系统不到指定文件' 问题的方法 请问解决 net start MySQL 出现系统错误 2 系统不到指定文件的方法"。用户提供了三个引用,我需要参考这些引用,特别是引用[1]和[2],因为它们直接相关。引用[3]是关于招聘数据的,似乎不相关,所以我应该忽略它。 关键引用: - 引用[1]: 显示了错误消息:运行 `net start mysql` 时出现 "发生系统错误 2系统不到指定文件"。还提到运行 `.\mysql -u root -p` 时出现错误。 - 引用[2]: 提供了解决方法:通过修改注册表来修复路径错误。具体步骤是:打开注册表编辑器,导航到 `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL`,检查并修改 `ImagePath` 的值到正确的 MySQL 安装路径。 用户的需求是解决这个特定错误:"系统不到指定文件"。我应该基于引用[2]提供解决方案。 系统级指令: - 所有行内数学表达式用 `$...$` 格式。但在这个上下文中,可能没有数学表达式,所以我可以忽略。 - 独立公式用 `$$...$$`,但同样,这里可能不需要。 - LaTeX 语法正确:由于是文本回答,不需要 LaTeX。 - 使用中文回答:是的,整个回答要用中文。 - 生成相关问题:在回答结束时,生成相关问题。 - 添加引用标识:在引用的段落末尾自然地添加引用标识,如 [^1]。 回答结构: - 用户要求结构清晰,帮助用户逐步解决问题,保证真实可靠。 - 根据引用[2]的解决方案,我应该描述注册表修改的步骤。 - 步骤: 1. 打开注册表编辑器(Win + R,输入 regedit)。 2. 导航到指定的路径:`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL`。 3. 找到 `ImagePath` 键。 4. 检查其值是否指向正确的 MySQL 安装路径。 5. 如果错误,修改为正确的路径。 6. 重新尝试启动 MySQL 服务。 其他可能的原因: - 引用[1]中提到修改了 MySQL 的安装路径后出现错误,所以路径错误是常见原因。 - 确保 MySQL 服务已安装:用户可能在移动文件夹后服务路径无效。 - 运行 `mysqld --install` 重新安装服务可能需要,但引用[2]直接指向注册表修改。 完整步骤: 1. 确认错误:运行 `net start mysql` 得到错误 22. 检查注册表路径。 3. 修改后,尝试启动服务。 4. 如果仍失败,可能需要重新安装服务。 生成相关问题: - 基于常见问题,比如如何重新安装 MySQL 服务、其他可能的错误原因等。 最终回答结构: - 介绍问题。 - 逐步解决方案。 - 结尾添加相关问题。 </think> ### 解决 "net start MySQL 出现系统错误 2 系统不到指定文件" 的方法 您遇到的错误 `net start mysql 发生系统错误 2 系统不到指定文件` 通常是由于 MySQL 服务的注册表路径配置错误引起的。当您移动了 MySQL 的安装文件夹后,Windows 服务管理器无法定位到正确的可执行文件路径。以下是基于引用[2]的可靠解决方案,我将逐步指导您操作: #### 步骤 1: 打开注册表编辑器 - 按下 `Win + R` 组合键,打开运行对话框。 - 输入 `regedit`,然后回车或点击“确定”,打开注册表编辑器。 - 如果提示管理员权限,请确认允许。 #### 步骤 2: 导航到 MySQL 服务注册表项 - 在注册表编辑器中,定位到以下路径: ``` HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL ``` - 如果不到此路径,说明 MySQL 服务未正确安装,请先运行 `mysqld --install` 命令重新安装服务(需在 MySQL 的 `bin` 目录下执行)。 #### 步骤 3: 检查并修改 ImagePath 值 - 在右侧窗口中,找到名为 `ImagePath` 的字符串值。 - 双击 `ImagePath`,打开编辑对话框。 - **检查当前值**:它应是 MySQL 服务的可执行文件路径(通常是 `mysqld.exe` 的完整路径)。默认路径类似: ``` "D:\mysql-8.0.40-winx64\bin\mysqld" MySQL ``` - **修改路径**: - 如果路径错误(例如指向旧位置),将其更改为 MySQL 的实际安装路径。例如,如果您的 MySQL 安装在 `D:\mysql-8.0.40-winx64`,路径应为: ``` "D:\mysql-8.0.40-winx64\bin\mysqld" MySQL ``` - 确保路径中包含双引号,路径名中如有空格必须正确转义。 - 点击“确定”保存修改。 - **示例**:如果您的 MySQL 已移至 `E:\mysql`,路径应改为 `"E:\mysql\bin\mysqld" MySQL`。 #### 步骤 4: 测试 MySQL 服务启动 - 关闭注册表编辑器。 - 以管理员身份打开命令提示符或 PowerShell: - 输入 `net stop mysql`(如果服务未运行可忽略)。 - 输入 `net start mysql`。 - 如果成功,您会看到 `MySQL 服务正在启动 ... MySQL 服务已经启动成功`。 - 如果仍失败,检查错误消息: - 错误 1060:服务未安装,需重新运行 `mysqld --install`。 - 其他错误:确保 MySQL 配置文件(如 `my.ini`)中的路径正确。 #### 额外建议 - **权限问题**:修改注册表前,请备份注册表项(右键点击 `MySQL` 项,选择“导出”)。 - **路径验证**:在文件资源管理器中确认 `bin\mysqld.exe` 文件存在。 - **引用说明**:此解决方案基于注册表路径修复的常见实践 [^2]。如果您移动了 MySQL 目录,此方法通常能解决路径错误问题。 如果上述步骤后问题仍存在,可能是服务未正确安装或权限不足,建议检查 MySQL 安装日志或重新运行安装脚本。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值