MYSQL:Can't open file: 'user.MYD'的解决方法
問題特徵: mysql數據庫錯誤: Can't open file: 'user.MYD'. (errno: 145) mysql數據庫錯誤號: 1016 解決方法: 1.運行myisamchk *.MYI或(myisamchk -e *.MYI,如果你有更多的時間)。使用-s(沉默)選項禁止不必要的信息。 你必須只修復那些myisamchk找出來的第一個錯誤的表。對這樣的表,繼續到階段2。 如果在檢查時,你得到奇怪的錯誤(例如out of memory錯誤),或如果myisamchk崩潰,到階段3。 2 :簡單安全的修復 首先,試試myisamchk -r -q tbl_name(-r -q意味著“快速恢復模式”)。這將試圖不接觸數據文件來修復索引文件。如果數據文件包含它應有的一切和在數據文件指向正確地點的刪除連接,這應該管用並且表可被修復。開始修理下一張表。否則,使用下列過程: 在繼續前做數據文件的一個備份。 使用myisamchk -r tbl_name(-r意味著“恢復模式”)。這將從數據文件中刪除不正確的記錄和已被刪除的記錄並重建索引文件。 如果前面的步驟失敗,使用myisamchk --safe-recover tbl_name。安全恢復模式使用一個老的恢復方法,處理常規恢復模式不行的少數情況(但是更慢)。 如果在修復時,你得到奇怪的錯誤(例如out of memory錯誤),或如果myisamchk崩潰,到階段3。 3 :困難的修理 如果在索引文件的第一個16K塊被破壞,或包含不正確的信息,或如果索引文件丟失,你只應該到這個階段 。在這種情況下,創建一個新的索引文件是必要的。按如下這樣做: 把數據文件移更安全的地方。 使用表描述文件創建新的(空)數據和索引文件: shell> mysql db_name mysql> DELETE FROM tbl_name; mysql> quit 將老的數據文件拷貝到新創建的數據文件之中。(不要只是將老文件移回新文件之中;你要保留一個副本以防某些東西出錯。) 回到階段2。現在myisamchk -r -q應該工作了。(這不應該是一個無限循環)。...