Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> 在windows平台下MySql啟動時的1067錯誤的解決方法及反思

在windows平台下MySql啟動時的1067錯誤的解決方法及反思

日期:2017/2/8 10:10:10      編輯:關於服務器
我認為導致這個問題的原因可能不止一種,所以搜集了網上一些朋友對此問題的解決供大家參考,希望能你有所幫助。 一、

1、打開my.ini文件,找到default-storage-engine=InnoDB這一行,把它改成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

根據我自己的實踐,只要進行第三步就能解決問題。

二、

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

經過一翻Google,找出了無法啟動的原因:MySQL在安裝的時候不會自動初始tmpdir(臨時文件目錄),所以要在配置文件my.ini中添加如下內容:

[mysqld]

#自己指定的臨時文件目錄

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

再次啟動MySQL一切正常,在Temp文件夾下生成了一些*.tmp的臨時文件。

最後還是存在一些疑問:如果是由於沒有初始化tmpdir,為什麼在我第一次安裝的時候也沒有初始化,但也沒有出現這樣的問題?

三、

以前手動安裝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-5.0.83-win32/my.ini

改為

mysqld --install MySQL --defaults-extra-file=E:/mysql-5.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上第一個提供外鍵約束的引擎,而且InnoDB存儲引擎對事務處理的能力也是MySQL其他存儲引擎所無法與之比擬的。

InnoDB與MyISAM的區別:

以InnoDB存儲引擎存儲的表,存儲表結構的.frm與存儲的表數據文件(ibdata1)是分開存放的,存儲表數據的文件位置可以通過修改my.ini文件自行設置:

#*** INNODB Specific options ***

innodb_data_home_dir="D:/"

以MyISAM存儲引擎存儲的表,一共包括3個文件:.frm(存儲表的結構)文件,.MYD(MYouData的縮寫,存儲表的數據)文件,.MYI(MYIndex的縮寫,存儲表的索引),這個三個文件同時存放在MySQL數據庫安裝時存放數據的目錄下,如F:\ProgramData\MySQL\MySQL Server 5.1\data\Databasename中。

另外,通過對這次問題的解決,我認識到了查看錯誤日志的重要性,當遇到問題的時候,我們首先想到的應該是去查看錯誤日志,而不是不加思索去Google或者去baidu,其實從錯誤日志中我們能得到真正造成問題的原因,對症下藥,才能藥到病除。MySQL的錯誤日志(.err)位於F:\ProgramData\MySQL\MySQL Server 5.1\data目錄下,文件名一般為你的計算機名。

Copyright © Windows教程網 All Rights Reserved