MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

コマンドラインからMySQLテーブルを修復する方法【REPAIR TABLEの使い方を解説】

MySQLテーブルの修復はMyISAMエンジン限定

MySQLのREPAIR TABLEコマンドによるテーブル修復は、MyISAMエンジンでのみ利用可能です。InnoDBエンジンのテーブルには適用できません。そのため、修復を実行する前に、対象テーブルのストレージエンジンをMyISAMに変更しておく必要があります。

以下では、テーブルの作成からエンジンの変更、修復コマンドの実行までを具体的な例とともに解説します。

1. テーブルの作成

まずは、サンプル用のテーブルを作成します。

mysql> create table RepairTableDemo
   -> (
   -> id int,
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.51 sec)

2. エンジンをMyISAMに変更する

作成したテーブルをMyISAMエンジンに変換するには、ALTER TABLE文を使用します。

mysql> ALTER TABLE RepairTableDemo ENGINE = MyISAM;
Query OK, 0 rows affected (1.14 sec)
Records: 0  Duplicates: 0  Warnings: 0

3. レコードの挿入

テーブルにテスト用のレコードを挿入します。

mysql> insert into RepairTableDemo values(1,'John'),(2,'Carol'),(3,'Johnson');
Query OK, 3 rows affected (0.06 sec)
Records: 3  Duplicates: 0  Warnings: 0

4. レコードの確認

SELECT文ですべてのレコードを表示します。

mysql> select * from RepairTableDemo;

実行結果は以下の通りです。

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

テーブルを修復する構文

テーブルを修復する際の基本構文は以下の通りです。

REPAIR TABLE テーブル名;

実際にRepairTableDemoテーブルに対して修復を実行してみましょう。

mysql> REPAIR TABLE RepairTableDemo;

実行結果は以下の通りです。Msg_typestatusMsg_textOKと表示されており、テーブルの修復が正常に完了したことを示しています。

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

補足:REPAIR TABLEのオプション

REPAIR TABLE文には、より徹底的な修復を行うためのオプションも用意されています。

  • QUICK:インデックス部分のみを修復します(データファイルは変更しません)。
  • EXTENDED:通常の修復で解決できない場合に、行ごとに徹底的な修復を実行します。時間はかかりますが、より多くの問題を修復できる可能性があります。
  • USE_FRM:.frmファイル(テーブル定義ファイル)の情報を利用してテーブル構造を再構築します。通常は使用しません。

例えば、より詳細な修復を行いたい場合は以下のように実行します。

mysql> REPAIR TABLE RepairTableDemo EXTENDED;

なお、InnoDBテーブルで破損が発生した場合は、REPAIR TABLEは使用できないため、バックアップからのリストアやinnodb_force_recoveryオプションを使った対応など、別の手法を検討する必要があります。

  1. MySQLコマンドラインでデータベースを作成する方法を初心者向けに解説

    MySQLコマンドラインでデータベースを作成する手順 この記事では、WindowsのコマンドプロンプトからMySQLに接続し、データベースを作成する一連の手順をスクリーンショット付きで解説します。初心者の方でも迷わず進められるよう、順番に見ていきましょう。 1. コマンドプロンプトを開く まず、コマンドプロンプトを起動します。キーボードのショートカット「Windows + R」キーを押すと、「ファイル名を指定して実行」ダイアログが表示されます。 2. 「CMD」と入力してOKをクリック 表示された入力欄に CMD と入力し、「OK」ボタンをクリックしてください。 3. コマンドプロンプトが

  2. コマンドラインからUbuntuをアップグレードする方法|do-release-upgrade徹底解説

    Ubuntuの「アップデートマネージャー」を使えば、新しいメジャーリリースへのアップグレードは比較的簡単に行えます。GUIのウィザードが手順を順番に案内してくれるため、初心者でも迷わず操作できるでしょう。 しかし、GUIユーティリティを使えない場面もあります。たとえばサーバー環境ではグラフィカルインターフェースにアクセスできないため、コマンドラインでアップグレード作業を行うしかありません。 とはいえ、これだけがコマンドラインを使う理由ではありません。CLIでは処理の進行状況がより詳細に表示されるのが特徴です。多くのコマンドラインツールは実行中に大量のテキストを出力するため、アップグレードの詳細