打開phpmyadmin選擇數據庫查看,果然有3個表顯示為“使用中”。勾選之後進行“修復表”,出現錯誤提示不能被修復。
於是接著從“分析表”、“優化表”開始,均告失敗。失敗信息第一條:can't create new temp file
1.表損壞的原因分析
以下原因是導致mysql 表毀壞的常見原因:
1、 服務器突然斷電導致數據文件損壞。
2、 強制關機,沒有先關閉mysql 服務。
3、 mysqld 進程在寫表時被殺掉。
4、 使用myisamchk 的同時,mysqld 也在操作表。
5、 磁盤故障。
6、 服務器死機。
7、 mysql 本身的bug 。
2.表損壞的症狀
一個損壞的表的典型症狀如下:
1 、當在從表中選擇數據之時,你得到如下錯誤:
Incorrect key file for table: '...'. Try to repair it
2 、查詢不能在表中找到行或返回不完全的數據。
3 、Error: Table 'p' is marked as crashed and should be repaired 。
4 、打開表失敗: Can't open file: ‘×××.MYI' (errno: 145) 。
google解決方案:強制修復 myisamchk -r -f ****.MYI,問題依舊
方法一:
重啟動mysql,簡單,一般會有效。
方法二:
運行SQL語句,登陸phpmyadmin,運行如下語句,多數可以決絕。
CHECK TABLE `table1`; ANALYZE TABLE `table1`; REPAIR TABLE `table1`;
方法三:
登陸phpmyadmin,首頁有個“狀態”標簽,點擊進去服務器選項卡下有個殺死進程的。
方法四:
使用linux命令解決Mysql數據表一直顯示使用中。以lampp服務器集成包為例,數據庫顯示“使用中”,操作命令如下:
/opt/lampp/lampp stopmysql cd /opt/lampp/var/mysql/ /opt/lampp/bin/myisamchk -f miningplants/wp_options.MYI (數據庫名、數據表名) /opt/lampp/lampp startmysql