close

今天在測試MySql資料庫時,

將拿到的資料庫覆蓋原來資料庫,

重新啟動後,

發生1067的錯誤,

上google大神拜一下,

得到了答案(這個答案有誤),

http://www.seeyou58.com/Html/?756.html

1、重裝後啟動mysql服務,提示
本地計算機無法啟動 mysql 服務 錯誤 1067:進程意外終止。
2、查看mysql根目錄下有一 計算機名.err 打開一看全是英文的錯誤提示;
3、根據其中的有一條錯誤,分析;
4、打開my.ini或my.cnf文件,找到default-storage-engine這一行,把它改成default-storage-engine=MyISAM。
重啟服務,問題解決。一個小的問題,新手要是遇到,可能會有幫助。


以上是前二天測試時得出的結果,

只能說自己對MySQL不太熟悉,

拿到一個資料庫應該先確認這個資料庫是InnoDB還是MyISAM的,

如果拿到是MyISAM類型的資料庫時,

要複製資料最簡單的方式就是將資料表(有三個檔案,分別是=>*.frm:資料表結構,*.myd:索引,*.myi:資料內容)

直接複製到資料夾內即可,

但如果拿到的是InnoDB類型的資料庫,

要非常小心ibdata1這個檔案,

因為這個檔案是包含了所有資料內容(在資料夾內,通常只會剩*.frm的檔案而已),

所以在執行作業時,最好可以把這個檔案備份,

再來說說前二天把default-storage-engine的參數更改為MyISAM後情況,

雖然可以啟動MySQL服務,

但在使用篩選資料(SELECT * FROM XXX)時,

都會出現 Unknown table engine 'InnoDB' 這個錯誤訊息,

剛開始一直以為拿到的資料庫是有毀損的,

但爬過許多文(都是大陸的比較多)後,

才發現是InnoDB與MyISAM型態的問題(有許多是討論InnoDB與MyISAM效能的文章,值得一看),

原因就是出在我所拿到的資料庫是InnoDB型態的,

但我本機原來的測試資料庫是使用MyISAM型態的,

在一些參數(my.ini)設定上本來就不適用了,

所以才會一直出現這個錯誤訊息,

有關將本機設定從MyISAM轉換為InnoDB網路上已經有許多說明了,

這裡則不再贅述。

arrow
arrow
    全站熱搜

    souts 發表在 痞客邦 留言(0) 人氣()