昨天MySQL还能用,今天中午的时候,运行一个web应用程序需要连接数据库,本来坐等正确的程序结果,结果报错了。
1. 一开始,打算手动通过Navicat进入数据库,结果显示
ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)
2. 然后,就想看看MySQL服务是否启动,打开windows服务之后,发现MySQL这一项服务是“未启动状态”,选就“启动此服务”。但是当进度条到一半左右的时候,弹出错误提示框:
windows无法启动mysql服务(位于本地计算机上)错误1067:进程意外终止。
在重启了几次MySQL服务之后,还是同样的错误,于是就进入“事件查看器”--->"windows日志"--->“应用程序”,发现提示的错误如图1:
图1
3.把错误信息“无法找到来自源 MySQL 的事件 ID 100 的描述。本地计算机上未安装引发此事件的组件,或者安装已损坏。可以安装或修复本地计算机上的组件。”也没找到好的解决方法。于是想,要不重新配置一下MySQL吧。各种”next“之后,配置完成之后,成功进入到”MySQL“,但是发现之前建的数据库并没有在这里面,各种不淡定啊!!那么多表,不能重新导入一遍吧。
4.试试把步骤2出现的错误复制到百度,出现了很多解决问题的方法,均指出是配置文件my.ini出现问题,进入MySQL安装目录找到my.ini,发现如图2的信息。忽然想到,之前在这个文件里面修改了database root的目录,重新配置之后的数据库中data是保存在”C:/ProgramData/MySQL/MySQL Server 6.0/data/“下的,难怪找不到我之前新建的数据库。然后就修改database root的路径。
图2
5.百度”如何修改mysql数据存储位置,出现很多好的方法,主要是参考“”中的方法:
a).修改my.ini文件中的数据存储目录为:datadir="D:\ProgramData\MySQL\data";
b).停止mySQL相关的服务;
c).将修改前的datadir下的所有文件copy到D:\ProgramData\MySQL\data下,会覆盖掉一些文件;
d).重启MySQL服务,即可。发现之前新建的数据库以及其中的表现身了
6.之前的数据库是现身了,但是打开有的表却出错了,如图3。
图3
幸亏在将修改前的datadir下的所有文件copy到D:\ProgramData\MySQL\data下之前,把原来的数据备份了一份。关掉MySQL服务,然后将备份的数据copy回到
D:\ProgramData\MySQL\data下,重启MySQL服务,进入MySQL,不存在的表又复活啦!!
小脾气妥妥搞定啦~~~
总结:数据库中的表还是得导出存着,保留个副本。实在不行重装数据库。