问题描述,之前还能正常使用的MySQL数据库在某一天早上起床后发现服务没法启动了!!
然后在网上找找找,一大堆各种各样的说法都有。在耗费一整天的时间来甄别这些说法,实验是否正确后,现在终于有了结果。
先是有人说my.ini文件有问题,其中有一些路径要放到windows目录下。没有解决。
2014-09-02T03:28:01.903945Z 0 [Note] Plugin 'FEDERATED' is disabled.
2014-09-02T03:28:01.903945Z 0 [Note] InnoDB: Using atomics to ref count buffer pool pages
2014-09-02T03:28:01.903945Z 0 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2014-09-02T03:28:01.903945Z 0 [Note] InnoDB: Uses system mutexes
2014-09-02T03:28:01.903945Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
2014-09-02T03:28:01.903945Z 0 [Warning] InnoDB: Adjusting innodb_buffer_pool_instances from 8 to 1 since innodb_buffer_pool_size is less than 1024 MiB
2014-09-02T03:28:01.903945Z 0 [Note] InnoDB: Number of pools: 1
2014-09-02T03:28:01.903945Z 0 [Note] InnoDB: Not using CPU crc32 instructions
2014-09-02T03:28:01.919545Z 0 [ERROerrno: 2R] InnoDB: Unable to create temporary file;
2014-09-02T03:28:01.919545Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2014-09-02T03:28:01.919545Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2014-09-02T03:28:01.919545Z 0 [ERROR] Unknown/unsupported storage engine: INNODB
2014-09-02T03:28:01.919545Z 0 [ERROR] Aborting
后来想起来要查看错误日志,翻出来错误日志查看后是 [ERROerrno: 2R] InnoDB: Unable to create temporary file; 这个错误。应该是系统找不到临时文件的存放目录。
于是重新找解决方法。原来是my.ini文件中没有指定临时文件的存放目录。原因是我之前使用过网上流传的那个.bat文件清理注册表垃圾。在mysqld下创建自己的临时文件存放目录即可。
#自己指定的临时文件存放
tmpdir="D:/ProgramData/Temp"
添加如上所示的语句。问题解决。
从这次的问题中总结以下几点:
1、遇到问题首先要想到的是查看日志,然后再去找对应的解决办法。比如1067这个错误代码不一定代表一类错误。要仔细甄别。
2、不要愣头愣脑的随便重新安装软件,这样会带来一系列的其他未知问题。遇到问题首先要冷静思考。
3、不能使用一些很没保障的小插件。比如这次的这个.bat文件,带来了很大的麻烦,而且是否有后续问题也是未知。