不要相信你的眼睛

不知道取什么标题好,你自己的眼睛也会骗你的

root@luoxuan 02:34:53>create TABLE test_trace(a INT);
Query OK, 0 ROWS affected (0.13 sec)

人为修改数据文件的owner,group

-rw-rw---- 1 mysql mysql      8554 May 19 14:35 test_trace.frm
[root@test luoxuan]# chown root:root test_trace.frm
-rw-rw---- 1 root  root       8554 May 19 14:35 test_trace.frm
 
root@luoxuan 02:44:21>show TABLES LIKE '%trace%';
+-----------------------------+
| Tables_in_luoxuan (%trace%) |
+-----------------------------+
| test_trace                  |
+-----------------------------+
1 ROW IN SET (0.00 sec)

表存在,你又删除不掉。

root@luoxuan 02:44:29>drop TABLE test_trace;
ERROR 1051 (42S02): UNKNOWN TABLE 'test_trace'

做到这里突然让我想起,以前做在mysql上做DDL时,表不见那次故障:http://www.dbunix.com/?p=2497
同样的现象:表能查到,但你想drop的时候,就报Unknown table,这次故障原因还没有找到,难道对表DDL过程中,mysql会修改文件owner等,猜的,还是要看一下源码。


Post a Comment