呕心沥血解决xampp启动mysql异常停止due to a blocked port, missing dependencies问题

 Error: MySQL shutdown unexpectedly.<br>
 This may be due to a blocked port, missing dependencies

这一行就是我问题的开始。

原因是因为,之前一直使用xampp用作本地mysql的启动管理,是个很好用的工具,但是近日想要给一个项目配置本地mysql库的信息,发现密码忘记了,我就在config的my.ini文件中添加了些跳过密码的配置信息

 但是添加到一半找到了密码,于是在文件中删除添加的信息后重启了mysql,这时候遇到问题了,xampp显示启动成功,如上图,但是数据库连接报错如下:

不一会xampp报出一个mysql意外终止的错误如下:

2:56:41 PM  [mysql]     Error: MySQL shutdown unexpectedly.<br>
2:56:41 PM  [mysql]     This may be due to a blocked port, missing dependencies, <br>
2:56:41 PM  [mysql]     improper privileges, a crash, or a shutdown by another method.<br>
2:56:41 PM  [mysql]     Press the Logs button to view error logs and check<br>
2:56:41 PM  [mysql]     the Windows Event Viewer for more clues<br>
2:56:41 PM  [mysql]     If you need more help, copy and post this<br>
2:56:41 PM  [mysql]     entire log window on the forums<br>

 根据当前信息提示;blocked port,看起来是端口占用了,但是我查看了下本机端口使用情况,3306并没有被占用,查看log日志,也没有报错都是note:

于是我便开始了为期2天的解决之路。 

最终我终于解决了问题,过程很坎坷!!!

我先大致总结了下网上常见的解决办法,但是对我来说一点没用,大家可以看看是不是准备这么做或者也这么做过了:

1.修改my.ini文件,将其中的端口改为3307或者其他,同时config中也将mysql的端口3306修改掉

 2.在mysql的my.ini中修改配置项,在[mysqld]中添加一系列的属性,或者在innodb_data_XX等属性后面添加一系列属性

3.删除xampp目录下的mysql下data目录中的ib_logfile0,ib_logfile1文件,并重启,再多次删除,多次重启

4.各种修改注册列表,改电脑中mysql配置文件的操作等等

5.重装xampp.重新配置

以上是网上常见的方法不能说没用,对我这个情况来说是没用的,下面开始总结我成功的方法---------------------------------------------------------------------------------------------:

1.定位异常

找到本地xampp的文件夹,这个不要找错了。找到其中mysql目录,进入后找到data文件夹,这时我发现,我的data文件夹中有了些异常文件:

我这个文件夹中有几千个新生成的master开头的info文件,目前我不知道这些的作用,能看出来是随着启动次数而增加的。大伙可以看看是不是也有这个情况,如果没有,我的经验不一定适用了。

2.重要文件备份

在这个xampp->mysql->data文件夹中,有个ibdata1文件,这个至关重要,这里面存贮的是现有每个数据库中的数据信息,表名数据一类的,要把这个文件保护好,可以备份一个,我的做法是把data文件夹整个备份了一下,后面的经验来看,也是备份整个data文件夹是最保险的因为涉及到文件的替换。

3.将之前所有修改的配置文件全部恢复,不添加任务东西
4.删除文件

选中ib_logfile0,ib_logfile1,以及所有的这些matser开头的info文件,全部删除(我的有4000份左右)。我当时连ibdata1都干掉了,这些文件是会在运行时重新生成的。注意这里的ib_logfile0,ib_logfile1文件,这时候我是删掉了(后面的经验来看,应该可以不删,只删除这些master开头的文件就行,在遇到类似的问题可以试下),后面还需要替换回来。

5.xampp中重启mysql,去数据库中尝试连接,最终成功。

注意事项:

因为我当时连ibdata1文件都干掉了,所以连上库后发现只有库名了,库里的数据都没了,还好我备份了这个文件,复制回来把新生成的ibdata1替换掉,数据就都恢复了。xampp也没有再出现shutdown unexpectedly的现象。

但是这时查看日志,会有大面积的error:

 原因是ib_logfile0和ib_logfile1是mysql用来存储操作执行的日志文件,用于事务暂存和回滚。 这时候文件是自动生成的不是原来的文件,我只把ibdata1替换回来,没有替换这两个,我便把原来我备份的这两个文件,重新替换回来,再启动,就不再报错了。

因为是摸索的进行修复的,ibdata1和ib_logfile0和ib_logfile1可能不需要删除是我多做了,再有这个情况时候可以试下,但是总算解决了问题还是不容易的。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值