2013-06-04 96 views
13

如果表崩潰,則表示系統出了問題。MySQL表示:#1194 - 表'tablename'被標記爲崩潰並且應該被修復

MySQL said: 

#1194 - Table 'tablename' is marked as crashed and should be repaired 

我的網站目前因此關閉。

我知道如何從phpmyadmin中修復表,但它是否可以修復?

這個問題的重要因素是什麼?

問題。一般來說,爲什麼桌子墜毀?

答案。這些可能是原因 -

  1. 服務器的磁盤空間已滿。 (請檢查活動服務器中的磁盤空間)

  2. 錯誤關閉MySQL服務器/使用數據庫時不正確地關閉表。

  3. 更多的服務器負載。

+0

您可以發佈查詢嗎? – Stephan

+0

這可能有幫助http://www.mysqlperformanceblog.com/2007/11/13/10-ways-to-crash-or-overload-mysql/ – 6339

+0

「*通常,爲什麼表崩潰?*」,因爲它是MyISAM。 ..它有一個不安全的聲譽。 –

回答

19

首先 - 崩潰表的原因很多。

  • 硬盤故障
  • 突然服務器重啓
  • 服務器崩潰
  • 固件問題(RAID控制器或BIOS)在佈線

甲修理

  • 缺陷與phpmyadmin基本上相同的mysqlrepair命令行。我建議修復命令行的一切:

    mysqlrepair -A --auto-repair 
    mysqlrepair -A -o 
    

    或者開始測試:

    mysqlrepair -A -c 
    
  • +2

    它說mysqlrepair沒有安裝。這與運行mysqlcheck -uUSER -pPASSWORD --repair --extended -A –

    4

    是的,你可以從修表的phpmyadmin,也不會影響你的數據,你也可以從「myisamchk的」命令shell修表。

    1

    我用這個命令行:

    mysqlcheck -u root -p --auto-repair --check --optimize --all-databases 
    
    +1

    相同:「錯誤:mysqlcheck不支持多個矛盾的命令。」 – asdf

    1

    用途:

    mysqlcheck -u root -p --auto-repair --check --all-databases 
    (Password prompted) 
    

    輸入用戶root的MySQL密碼一切都完成了。

    11

    如果你沒有命令行工具需要和理由崩潰是最有可能的是MYSQL本身,運行這個從MySQL到修表:

    REPAIR TABLE db_name.table_name; 
    
    0

    如果你有服務器,你可以ssh訪問登錄,然後執行:

    df -h 
    

    ,你可以看到這樣的事情:

    Filesystem   Size Used Avail Use% Mounted on 
    /dev/cciss/xxxx  19G 825M 18G 5%/
    /dev/cciss/xxxx  9.4G 4.8G 4.2G 54% /usr 
    /dev/cciss/xxxx  15G 1.8G 12G 13% /var 
    /dev/cciss/xxxx  19G 18G 0G 0% /opt 
    /dev/cciss/xxxx  4.7G 243M 4.3G 6% /tmp 
    /dev/cciss/xxxx  9.4G 1.5G 7.5G 17% /home 
    

    它安裝的燈泡上/opt,有一些可用磁盤空間後,您可以運行查詢(如上面寫道):

    Repair table db.mytablecrashed 
    

    你在最後一排得到:

    Table    OP  Msg_type Msg_text 
    ... 
    db.mytablecrashed repair status OK 
    
    1

    解決方案:

    只要進入數據庫,其中有問題,選擇「修表」選項它將選擇表修復表中的崩潰條目並解決您的問題

    enter image description here

    相關問題