windows下启动mysql5.1服务,提示1067错误

windows下启动mysql5.1服务,提示1067错误

【问题现象】
曾经启动和停止好使的mysql5.1,偶然发生启动失败,并提示如下信息:
********************************
MySQL51 服务正在启动 .
MySQL51 服务无法启动。

系统出错。

发生系统错误 1067。

进程意外终止。
**********************************
重新卸载再安装mysql5.1,并且重启操作系统,再加上清除注册表中的相关信息后,还是提示上面的错误,

经查阅相关资料,说是my.ini文件需要放到c:\windows目录下,其实都不是这个问题,因为

mysql5.1在安装成服务后,其注册信息中已经指定了用mysql5.1的安装目录下的my.ini,如下:
**********begin*********
"D:\tools_installed\MySQL_New\MySql_5.1\bin\mysqld" --defaults-file="D:\tools_installed\MySQL_New\MySql_5.1\my.ini" MySQL51
***********end**********
所以不需要放置my.ini到c:\windows目录下。

【问题分析】
经查看启动mysql5.1的错误日志,文件位置在:%mysql_home%\my.ini中定义的datadir目录下:
********begin*******
110420 11:15:28 [Note] Plugin 'FEDERATED' is disabled.
110420 11:15:28  InnoDB: Error: unable to create temporary file; errno: 2
110420 11:15:28 [ERROR] Plugin 'InnoDB' init function returned error.
110420 11:15:28 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
110420 11:15:28 [ERROR] Unknown/unsupported table type: INNODB
110420 11:15:28 [ERROR] Aborting
********end*********

这里有关键的一句是:InnoDB: Error: unable to create temporary file; errno: 2

即不能创建临时文件。


【解决方法】
最终适合的解决方案为:在%mysql_home%/my.ini的[mysqld]段中定义变量tmpdir并赋予目录位置
# the codes remedified by can_do on 2011/4/20
tmpdir="D:/tools_installed/MySQL_New/MySql_5.1/data_result/"
而且要保证:使用innodb,即在%mysql_home%/my.ini下有如下项:
**********begin*********
# skip-innodb
***********end***********
即不跳过!

你可能感兴趣的:(mysql,windows)