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

來源:互聯網
上載者:User
我認為導致這個問題的原因可能不止一種,所以搜集了網上一些朋友對此問題的解決供大家參考,希望能你有所協助。 一、

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目錄下,檔案名稱一般為你的電腦名稱。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.