2014-01-08 84 views
2

我不小心刪除了測試表的.frm文件。問題是我無法刪除此表並將它從information_schema中刪除。刪除.frm文件後清除錯誤

select * from information_schema.tables where table_name like 'testtesttest'; 
+---------------+--------------+--------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-----------------+----------+----------------+----------------------------------------------------------+ 
| TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE | ENGINE | VERSION | ROW_FORMAT | TABLE_ROWS | AVG_ROW_LENGTH | DATA_LENGTH | MAX_DATA_LENGTH | INDEX_LENGTH | DATA_FREE | AUTO_INCREMENT | CREATE_TIME | UPDATE_TIME | CHECK_TIME | TABLE_COLLATION | CHECKSUM | CREATE_OPTIONS | TABLE_COMMENT           | 
+---------------+--------------+--------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-----------------+----------+----------------+----------------------------------------------------------+ 
| def   | report  | testtesttest | BASE TABLE | NULL | NULL | NULL  |  NULL |   NULL |  NULL |   NULL |   NULL |  NULL |   NULL | NULL  | NULL  | NULL  | NULL   |  NULL | NULL   | Can't find file: './report/testtesttest.frm' (errno: 13) | 
+---------------+--------------+--------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-----------------+----------+----------------+----------------------------------------------------------+ 

drop table report.testtesttest; 
ERROR 1051 (42S02): Unknown table 'testtesttest' 

有沒有辦法告訴mysql這樣的表不再存在?

+0

您使用了哪種引擎? – fancyPants

+0

@fancyPants InnoDB – begemotv2718

回答

2

貌似下列步驟幫忙:

  1. 觸摸/var/lib/mysql/report/testtesttest.{frm,ibd}
  2. CHOWN的mysql:mysql的在/ var/lib中/ MySQL的/報告/testtesttest.frm
  3. restart mysql
  4. drop table report.testtesttest;