2015年8月12日 星期三

Mysql 資料表 crashed 修復

今天接到通知說某系統有點問題..
連到SERVER看log,
發現在執行SQL語法時一直出錯,
INSERT INTO top10pkt (ip,dstport,pktsent) SELECT srcip,dstport,sum(pktsent) AS pkts FROM ntop.intflow WHERE stime>='2015-08-12 15:10:00' AND stime<'2015-08-12 15:11:00' GROUP BY srcip,dstport ORDER BY pkts DESC LIMIT 0,10 ;
ERROR 144 (HY000): Table './netflow/top10pkt' is marked as crashed and last (automatic?) repair failed

去網路上找了資料,處理如下
1.
先停掉資料庫
/etc/rc.d/init.d/mysqld stop
2.
切到mysql中的毀損資料庫的資料夾 (我是用netflow)
cd /var/lib/mysql/netflow/
3.
修復所有資料表
 myisamchk -r *.MYI
也可以修復單一資料表
 myisamchk -r top10pkt .MYI (剛剛報錯誤的是top10pkt 這個table)

4. 重啟mysql

/etc/rc.d/init.d/mysqld restart

沒有留言:

張貼留言