MySQL資料表壞掉了。應用程式串連資料庫提到如下的異常:
1 java.sql.SQLException: Can't open file: 'kq_attTemp.MYI'. (errno: 145)
2 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2921)
3 at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1570)
4 at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
5 at com.mysql.jdbc.Connection.execSQL(Connection.java:2972)
6 at com.mysql.jdbc.Connection.execSQL(Connection.java:2902)
7 at com.mysql.jdbc.Statement.executeQuery(Statement.java:822
1 java.sql.SQLException: Can't open file: 'kq_attTemp.MYI'. (errno: 145)
2 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2921)
3 at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1570)
4 at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
5 at com.mysql.jdbc.Connection.execSQL(Connection.java:2972)
6 at com.mysql.jdbc.Connection.execSQL(Connection.java:2902)
7 at com.mysql.jdbc.Statement.executeQuery(Statement.java:822
解決方案:進入MySQL,使用MySQL修複命令修複該表。
CHECK TABLE `music`//檢查表
REPAIR TABLE `music`//修複表
OPTIMIZE TABLE `music`//最佳化表
使用第二條修複命令就解決了問題。但是表卻壞得莫名其妙的……以下是其它網友提供的解決方案,但是不保證一定有效:
用命令myisamchk可以檢查並修複MyISAM表
如:
myisamchk music
myisamchk --recover music
如果是InnoDB表,可以在mysql>提示符下用
CHECK TABLE來檢測是否有問題
如果有問題,可以用mysqldump匯出,drop table, 用dump的資料重建該表的方式修複