在我的一个 InnoDB 表中执行条件DELETE
操作时,显然需要在 ibdata1 中创建一些临时表,但硬盘已满,mysql 崩溃。在删除 ibdata1 文件(~30 GB)之前,我无法让它重新开始。
现在 mysql 再次启动,但数据库中的所有表似乎都已损坏(当我这样做时,REPAIR TABLE tablename EXTENDED
我得到:
+-----------------------------------+--------+----------+---------+
| Table | Op | Msg_type | Msg_text |
+-----------------------------------+--------+----------+---------+
| mydb.table1 | repair | Error | Unknown table engine 'InnoDB' |
| mydb.table1 | repair | error | Corrupt |
+-----------------------------------+--------+----------+---------+
我正在使用innodb_file_per_table
选项,以便我的所有 .frm 和 .ibd 文件(它们应该分别包含元数据和数据)都是完整的(具有与崩溃前相同的文件大小),位于目录中:/var/mysql/data/mydb/
. 有谁知道我怎样才能让 mysql 再次用适当的数据识别这些表?
谢谢!