在windows平臺下MySql啟動時的1067錯誤的解決方法及反思
來源:程序員人生 發(fā)布時間:2015-04-11 09:37:08 閱讀次數(shù):3673次
我認為致使這個問題的緣由可能不止1種,所以搜集了網(wǎng)上1些朋友對此問題的解決供大家參考,希望能你有所幫助。
1、
1、打開my.ini文件,找到default-storage-engine=InnoDB這1行,把它改成default-storage-engine=MyISAM。
2、刪除在MySQL安裝目錄下的Data目錄中的ib_logfile0和ib_logfile1
3。找到在配置MySQL服務(wù)器時指定的InfoDB目錄刪除掉ibdata1
根據(jù)my.ini文件中:
#*** INNODB Specific options ***
innodb_data_home_dir="D:/"。
4。重新啟動MySQL的Service
根據(jù)我自己的實踐,只要進行第3步就可以解決問題。
2、
err文件內(nèi)容:
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
經(jīng)過1翻Google,找出了沒法啟動的緣由:MySQL在安裝的時候不會自動初始tmpdir(臨時文件目錄),所以要在配置文件my.ini中添加以下內(nèi)容:
[mysqld]
#自己指定的臨時文件目錄
tmpdir="D:/MySQL/MySQL
Server 5.1/Temp"
再次啟動MySQL1切正常,在Temp文件夾下生成了1些*.tmp的臨時文件。
最后還是存在1些疑問:如果是由于沒有初始化tmpdir,為何在我第1次安裝的時候也沒有初始化,但也沒有出現(xiàn)這樣的問題?
3、
之前手動安裝MySQL5.0.16的windows service時很順利,昨晚為5.0.83安裝service時,總是提示1067的毛病。網(wǎng)上有人說把my.ini放到C:WINDOWS下就能夠了,但我遇到的情況是問題依然沒有解決。我的解決辦法是將參數(shù)中的--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的用法,其中就有這兩個參數(shù)的說明。
根據(jù)我自己的實踐,引發(fā)這個問題最大的可能性是數(shù)據(jù)表存儲引擎(Engine,簡而言之,存儲引擎就是指表的類型,即Table
Type
)引發(fā)的。MySQL數(shù)據(jù)庫支持的數(shù)據(jù)表存儲引擎有多種,可以用命令:show engines進行查看,在MySQL的配置文件my.ini中可以也看到(默許的是MyISAM):
# The default storage engine that will be used when create new tables when
default-storage-engine=MyISAM。
經(jīng)常使用的存儲引擎還有InnoDB,InnoDB有多種優(yōu)點,InnoDB給MySQL的表提供了事務(wù)、回滾、崩潰修復(fù)能力、多版本并發(fā)控制的事務(wù)安全.同時,InnoDB也是MySQL上第1個提供外鍵束縛的引擎,而且InnoDB存儲引擎對事務(wù)處理的能力也是MySQL其他存儲引擎所沒法與之比擬的。
InnoDB與MyISAM的區(qū)分:
以InnoDB存儲引擎存儲的表,存儲表結(jié)構(gòu)的.frm與存儲的表數(shù)據(jù)文件(ibdata1)是分開寄存的,存儲表數(shù)據(jù)的文件位置可以通過修改my.ini文件自行設(shè)置:
#*** INNODB Specific options ***
innodb_data_home_dir="D:/"
以MyISAM存儲引擎存儲的表,1共包括3個文件:.frm(存儲表的結(jié)構(gòu))文件,.MYD(MYouData的縮寫,存儲表的數(shù)據(jù))文件,.MYI(MYIndex的縮寫,存儲表的索引),這個3個文件同時寄存在MySQL數(shù)據(jù)庫安裝時寄存數(shù)據(jù)的目錄下,如F:ProgramDataMySQLMySQL
Server 5.1dataDatabasename中。
另外,通過對這次問題的解決,我認識到了查看毛病日志的重要性,當遇到問題的時候,我們首先想到的應(yīng)當是去查看毛病日志,而不是不加思索去Google或去baidu,其實從毛病日志中我們能得到真正造成問題的緣由,對癥下藥,才能藥到病除。MySQL的毛病日志(.err)位于F:ProgramDataMySQLMySQL
Server 5.1data目錄下,文件名1般為你的計算機名。
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈