如何从命令行修复MySQL表?

MySQL表的修复仅适用于MyISAM引擎类型,不适用于InnoDB。因此,我们需要将引擎类型更改为MyISAM。

以下是一个示例。

建立表格

mysql> create table RepairTableDemo
   -> (
   -> id int,
   -> name varchar(100)
   -> );

要将表转换为引擎类型MyISAM,请使用ALTER。

mysql> ALTER TABLE RepairTableDemo ENGINE = MyISAM;
Records: 0  Duplicates: 0  Warnings: 0

将记录插入表中。

mysql> insert into RepairTableDemo values(1,'John'),(2,'Carol'),(3,'Johnson');
Records: 3  Duplicates: 0  Warnings: 0

显示所有记录。

mysql> select *from RepairTableDemo;

以下是输出。

+------+---------+
| id   | name    |
+------+---------+
|    1 | John    |
|    2 | Carol   |
|    3 | Johnson |
+------+---------+
3 rows in set (0.00 sec)

现在让我们看看修复表的语法。

REPAIR TABLE yourTableName;

以下是查询-

mysql> REPAIR TABLE RepairTableDemo;

这是输出。它表明修复状态良好。

+--------------------------+--------+----------+----------+
| Table                    | Op     | Msg_type | Msg_text |
+--------------------------+--------+----------+----------+
| business.repairtabledemo | repair | status   | OK       |
+--------------------------+--------+----------+----------+
1 row in set (0.10 sec)