綠色資源網:您身(shēn)邊最(zuì)放心的安全下載站! 最新軟件|熱門排行|軟件分(fèn)類|軟件專題|廠商大全

綠色資源網

技術教程
您的位(wèi)置:首頁(yè)數據庫類MySQL → MySql5.0 Table錯誤:is marked as crashed and last (automatic?) repair failed

MySql5.0 Table錯誤:is marked as crashed and last (automatic?) repair failed

我要評論 2012/07/18 11:36:10 來源:綠色資源網 編輯(jí):ynaad.com [ ] 評(píng)論:0 點擊:2074次(cì)

myisamchk -f -o ../data/database1/cms_session.MYI

最後我解決的(de)方法是

  1. myisamchk -f -o ../data/database1/cms_session.MYI

以下是 網友的BLOG詳細資料!

我的網站出問題了,訪問一看,果然全屏報錯,檢查mysql日(rì)誌,錯誤信息為:

  1. Table ‘.\dedecmsv4\dede_archives’ is marked as crashed and should be repaired

提示說cms的(de)文章表dede_archives被標記有問題,需要修複。於是趕快恢複曆史數據,上網查找原因(yīn)。最終將問題解決。解決方法(fǎ)如下:

找到mysql的安裝目(mù)錄的bin/myisamchk工具,在命令行中(zhōng)輸入:

  1. myisamchk -c -r ../data/dedecmsv4/dede_archives.MYI

然後myisamchk 工具(jù)會幫助你(nǐ)恢複數據表的索引。重新啟動mysql,問題解決。

問題分析:

1、錯(cuò)誤(wù)產生原因,有網友說是頻繁查詢和更新dede_archives表造成的索引錯誤,因為我的頁麵沒有靜態生成,而是動態(tài)頁麵,因此比較同(tóng)意這種(zhǒng)說法。還有說法為是MYSQL數據庫因為某種原因而受到(dào)了損壞,如:數據庫服務器突發(fā)性的斷(duàn)電、在提在數據(jù)庫表提供(gòng)服務時對表(biǎo)的原文件進行某種操作都有可能導致MYSQL數據庫(kù)表被損壞(huài)而無法讀取數據。總之就是因為某些不可測的問(wèn)題造成表的損壞。

問(wèn)題的編號為(wéi)145

2、問題解決(jué)辦法。

當你試圖修複一(yī)個被(bèi)破壞的表的問題時,有三種修複類型。如果你得到(dào)一個錯誤信息指(zhǐ)出一個臨時文件不能建立,刪除信息(xī)所(suǒ)指出的(de)文件並再試一次–這通常是上一次修複操作遺留下來的。 這三(sān)種修複方法如下所示:

  1. % myisamchk –recover –quick /path/to/tblName
  2. % myisamchk –recover /path/to/tblName
  3. % myisamchk –safe-recover /path/to/tblName

第一種是最快的,用來修複(fù)最普通的問(wèn)題;而最後一種(zhǒng)是最慢的,用(yòng)來修複一(yī)些其它方法所不能修複的問題。

檢查和修複MySQL數據文件 如果上麵的方法無法修複一個被損壞的表,在你放(fàng)棄之前,你還(hái)可以試試下麵這兩個技巧: 如果(guǒ)你懷(huái)疑表的索引文(wén)件(jiàn)(*.MYI)發生了不可修複的錯誤,甚至是丟失了這個文(wén)件,你可以使用數(shù)據文(wén)件(*.MYD)和(hé)數據格式文件(*.frm)重新生成它。首先製作一個數據文件(tblName.MYD)的拷(kǎo)貝。重啟你的MySQL服務並連(lián)接到這個服務上,使用下麵的命令刪除表的內容: mysql> DELETE FROM tblName; 在刪除表的內容的同時,會建立一個(gè)新的索引文件。退出登錄並重新關閉(bì)服務,然後用你剛才保存的數據文件(tblName.MYD)覆蓋新的(空)數據文件。最後,使用myisamchk執行標準的修複(上麵的第(dì)二種方法),根據表的(de)數據的內容和表的格式文(wén)件重新生成索引數據。

如果你的表的格式文件(tblName.frm)丟失了(le)或者是發生了不可修複的錯誤,但是你(nǐ)清楚如何使用相應的CREATE TABLE語句來重新生(shēng)成這張表,你可以重新生成一個新的.frm文件並和你的數據文件和索引文件(如果索引文件有問題,使用上麵的方法重建一個新的)一起使(shǐ)用。首先製作一個數據和索引文件的拷貝,然後刪除原來的文件(刪除(chú)數據目錄(lù)下有關這個表的所有記錄)。

啟動MySQL服務(wù)並使(shǐ)用當初的CREATE TABLE文件建立一個新(xīn)的表。新的.frm文(wén)件應該可以正(zhèng)常工作了,但是最好你(nǐ)還是執行一下標準的修複(上麵的第二種方法)。 3、myisamchk工具介(jiè)紹(見mysql的官(guān)方手冊)

可以使用myisamchk實用程序來獲得有關數據庫表的信息(xī)或檢查、修複(fù)、優化他們。myisamchk適用MyISAM表(對應.MYI和.MYD文件(jiàn)的表)。

調用myisamchk的方(fāng)法:

shell> myisamchk [options] tbl_name … options指定你想讓(ràng)myisamchk做什麽。在後麵描述它(tā)們。還可以通過調(diào)用myisamchk –help得到(dào)選項列表。

tbl_name是你想要檢查或修複的數(shù)據庫表。如果你不在(zài)數(shù)據庫(kù)目錄的某處運行(háng)myisamchk,你(nǐ)必須指定數據庫目錄的路(lù)徑,因為myisamchk不知道你的數據庫(kù)位於哪兒。實際上,myisamchk不在(zài)乎你正在操作的(de)文件(jiàn)是否位於一個(gè)數據庫目錄;你可以將(jiāng)對應於數(shù)據庫(kù)表的文件拷貝到別處並且在那裏(lǐ)執行恢複操作。

如果你願意,可以用myisamchk命令行命名幾個表。還可以通過(guò)命(mìng)名(míng)索引文件(jiàn)(用(yòng)“ .MYI”後綴)來指定一個表。它允許你通(tōng)過使用模式“*.MYI”指定在一個目錄所有的表。例如,如果你在數據庫目(mù)錄,可以這(zhè)樣在目錄下檢查(chá)所有的MyISAM表:

shell> myisamchk *.MYI 如果你不在(zài)數據庫目錄下,可通過指定到目(mù)錄的路徑檢查所有在那裏的表:

shell> myisamchk /path/to/database_dir/*.MYI 你甚至可以通(tōng)過為MySQL數據目錄(lù)的路徑指定一個通(tōng)配符來檢查所有的數據庫中的所有(yǒu)表:

shell> myisamchk /path/to/datadir/*/*.MYI 推薦的快速檢查所有MyISAM表的(de)方式是:

  1. shell> myisamchk –silent –fast /path/to/datadir/*/*.MYI

如(rú)果你想要檢(jiǎn)查所有MyISAM表並(bìng)修複任何破壞的表,可以使用下麵(miàn)的(de)命令:

  1. shell> myisamchk –silent –force –fast –update-state \
  2.    -O key_buffer=64M -O sort_buffer=64M \
  3.    -O read_buffer=1M -O write_buffer=1M \
  4.    /path/to/datadir/*/*.MYI

該命(mìng)令假定你有大於(yú)64MB的自由內存。關(guān)於用myisamchk分配內存的詳細信息,參見5.9.5.5節,“myisamchk內存(cún)使用”。

當你運行(háng)myisamchk時,必須確保其它程序(xù)不使用表。否(fǒu)則,當你運行myisamchk時,會顯示下麵的錯誤消息:

  1. warning: clients are using or haven’t closed the table properly

這說明你正嚐試(shì)檢查正被另一(yī)個還沒(méi)有關閉文件(jiàn)或已經終止而沒有正確地關閉(bì)文件的程序(例如mysqld服務(wù)器)更新的表。

如果mysqld正在運(yùn)行,你必須通過(guò)FLUSH TABLES強製(zhì)清空仍然在內存中(zhōng)的(de)任何表修改。當你運行myisamchk時,必須確保其它(tā)程序不使(shǐ)用表。避免該問題的最容易的方(fāng)法(fǎ)是使用CHECK TABLE而不用myisamchk來檢查表。

關鍵詞:MySql

閱讀本文後您有什麽感想? 已有 人給(gěi)出評價!

  • 1 歡迎喜(xǐ)歡
  • 2 白癡
  • 1 拜托
  • 1 哇
  • 1 加油(yóu)
  • 1 鄙視
免费人欧美成又黄又爽的视频丨一本色道久久88综合日韩精品丨国产专区日韩精品欧美色丨午夜无遮挡男女啪啪视频丨国产欧美日韩综合精品一区二区丨亚洲精品无码不卡在线播HE丨亚洲精品国产精品国自产观看丨日韩国产高清av不卡