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

注意:该博客编写时间略为久远,对新版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天长假(开心)

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值