程序员人生 网站导航

在windows平台下MySql启动时的1067错误的解决方法及反思

栏目:服务器时间:2015-04-11 09:37:08
我认为致使这个问题的缘由可能不止1种,所以搜集了网上1些朋友对此问题的解决供大家参考,希望能你有所帮助。
 
1、

1、打开my.ini文件,找到default-storage-engine=InnoDB这1行,把它改成default-storage-engine=MyISAM。

2、删除在MySQL安装目录下的Data目录中的ib_logfile0和ib_logfile1
3。找到在配置MySQL服务器时指定的InfoDB目录删除掉ibdata1

根据my.ini文件中:

#*** INNODB Specific options ***
innodb_data_home_dir="D:/"。
4。重新启动MySQL的Service  

根据我自己的实践,只要进行第3步就可以解决问题。

 

2、

 err文件内容:

090417  9:02:55  InnoDB: Error: unable to create temporary file; errno: 2
090417  9:02:55 [ERROR] Plugin 'InnoDB' init function returned error.
090417  9:02:55 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
090417  9:02:55 [ERROR] Unknown/unsupported table type: INNODB
090417  9:02:55 [ERROR] Aborting

090417  9:02:55 [Warning] Forcing shutdown of 1 plugins
090417  9:02:55 [Note] MySQL: Shutdown complete 

     经过1翻Google,找出了没法启动的缘由:MySQL在安装的时候不会自动初始tmpdir(临时文件目录),所以要在配置文件my.ini中添加以下内容:

    [mysqld]

    #自己指定的临时文件目录

    tmpdir="D:/MySQL/MySQL Server 5.1/Temp"

    再次启动MySQL1切正常,在Temp文件夹下生成了1些*.tmp的临时文件。

    最后还是存在1些疑问:如果是由于没有初始化tmpdir,为何在我第1次安装的时候也没有初始化,但也没有出现这样的问题?

 

3、

        之前手动安装MySQL5.0.16的windows service时很顺利,昨晚为5.0.83安装service时,总是提示1067的毛病。网上有人说把my.ini放到C:WINDOWS下就能够了,但我遇到的情况是问题依然没有解决。我的解决办法是将参数中的--defaults-file用--defaults-extra-file取代,以下:

 

        mysqld --install MySQL --defaults-file=E:/mysql⑸.0.83-win32/my.ini

        改成

        mysqld --install MySQL --defaults-extra-file=E:/mysql⑸.0.83-win32/my.ini

 

        履行mysqld --verbose --help能看到mysqld的用法,其中就有这两个参数的说明。

 

 

 

   根据我自己的实践,引发这个问题最大的可能性是数据表存储引擎(Engine,而言之,存储引擎就是指表的类型,即Table Type

)引发的。MySQL数据库支持的数据表存储引擎有多种,可以用命令:show engines进行查看,在MySQL的配置文件my.ini中可以也看到(默许的是MyISAM):

# The default storage engine that will be used when create new tables when
default-storage-engine=MyISAM。

 

    经常使用的存储引擎还有InnoDB,InnoDB有多种优点,InnoDB给MySQL的表提供了事务、回滚、崩溃修复能力、多版本并发控制的事务安全.同时,InnoDB也是MySQL上第1个提供外键束缚的引擎,而且InnoDB存储引擎对事务处理的能力也是MySQL其他存储引擎所没法与之比拟的。 

    InnoDB与MyISAM的区分:

    以InnoDB存储引擎存储的表,存储表结构的.frm与存储的表数据文件(ibdata1)是分开寄存的,存储表数据的文件位置可以通过修改my.ini文件自行设置:

 #*** INNODB Specific options ***

innodb_data_home_dir="D:/"

    以MyISAM存储引擎存储的表,1共包括3个文件:.frm(存储表的结构)文件,.MYD(MYouData的缩写,存储表的数据)文件,.MYI(MYIndex的缩写,存储表的索引),这个3个文件同时寄存在MySQL数据库安装时寄存数据的目录下,如F:ProgramDataMySQLMySQL Server 5.1dataDatabasename中。

    另外,通过对这次问题的解决,我认识到了查看毛病日志的重要性,当遇到问题的时候,我们首先想到的应当是去查看毛病日志,而不是不加思索去Google或去baidu,其实从毛病日志中我们能得到真正造成问题的缘由,对症下药,才能药到病除。MySQL的毛病日志(.err)位于F:ProgramDataMySQLMySQL Server 5.1data目录下,文件名1般为你的计算机名。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐