しばらくWordPressを使用している場合は、より詳細なデータベース管理も開始したくなるかもしれません。そのときに、MySQLコマンドラインの使用しますが、そうするとMySQL 1064エラーなどの分かりにくい異常が発生する可能性があります。

幸いなことに、このエラーには考えられる原因が多いですが、解決策は比較的に簡単です。データベースエラーの原因を特定すると、かなり迅速に修正できるはずです。

本記事では、MySQL 1064エラーのさまざまな原因について説明します。次に、サイトとデータベースを速く修正できる為に、考えられる原因ごとの解決策もご紹介します。

それでは始めましょう!

MySQL 1064エラーが発生する理由

MySQL 1064エラーは構文エラーです。つまり、発生原因はMySQLがユーザーの指示を理解できないことです。ただし、ユーザーとデータベースの間の誤通信を引き起こす真の原因は複数あります。

最も単純な原因は、コマンドの入力中にミスを犯し、MySQLがリクエストを理解できないことです。または、読むことのできない古いコマンドや 廃止されたコマンドを使用しようとしている場合もあります。

それに、コマンドに「予約語」を含めようとした場合もあります。予約語は、MySQLの特定のコンテキストでのみ使用できる用語です。特定のコンテキスト以外の場合で使用しようとすると、エラーが発生します。

また、データベースのデータの一部が見つからない可能性もあります。MySQLを使用して、本来あるべき場所にないデータを参照するリクエストを行うと、1064エラーが発生します。最後になりますが、WordPressのデータベースを新しいサーバーに移動しても、本異常が発生する可能性があります。

ご覧のとおり、本異常には考えられる原因は多いため、解決が難しい場合があります。データベース移動などの特定の原因がすぐ分かる場合を除き、適切な解決策を見つけるにはいくつかの解決策を試す必要があるでしょう。 幸いなことに、実行するのが難しくない解決策ばかりです。

WordPressの「MySQL 1064」エラーの処理方法(5つの方法)

MySQL 1064エラーの原因がすでにご存じの方には、その原因の解決策にジャンプしていただけます。ただし、発生理由がご存じでない場合は、最も簡単な対策から始めた方が良いでしょう。

その場合、次の順序で最も可能性の高い5つの解決策を実施してみてください。

1. コマンドの入力ミスを修正する

MySQLの入力ミスの良い点は、1064エラーなどの構文異常の最もよくある原因であることです。残念ながら、それらは修正するのが最も面倒です。原則として、コードを手動で校正し、記入ミスを探したほうが最も効率のいい方法です。

その際は、MySQLマニュアルを参考にして、よくわからないものを再確認することをお勧めします。ご想像のとおり、これはかなり時間がかかる作業です。MySQLのコマンドラインでしばらく作業していた場合や、この仕事にまだ慣れていない場合は特にそうです。

作業内容を手動で確認する代わりに、EverSQLなどのツールを使用することもできます。

MySQL 1064エラー:EverSQL構文チェッカー
構文チェッカーEverSQL

このツールを使用すると、MySQLを入力するだけで自動的にエラーが確認されます。ただし、これらのツールは必ずしも完璧ではないため、結果を自分で検証した方が良いでしょう。

2. 廃止されたコマンドを置き換える

どのプラットフォームもそうですが、その成長につれて、過去に有用だったコマンドがより効率的なコマンドに置き換えられます。MySQLも例外ではありません。最近の更新後にデータベースの作業を行っている場合、または作業中に古いソースを参照している場合、1つ以上のコマンドが無効になっている可能性があります。

これに該当するかどうかを確認するには、MySQLリファレンスマニュアルをご参照ください。関連するセクションに、MySQLの各バージョンで廃止されたコマンドのリストがあります。

MySQL 1064エラー:廃止されたコマンドを手動で削除する
廃止されたコマンドを手動で削除する

異常の原因であるコマンドを特定したら、「検索と置換」機能を使用して、廃止されたコマンドを削除し、新しいバージョンで置き換えます。たとえば、storage_engineを使用していたが、廃止されたと分かった場合、そのすべてのインスタンスを新しいdefault_storage_engineコマンドで置き換えることができます。

3. 予約語を指定する

MySQLでは、特定のコンテキスト外で予約語を使用すると、誤ったものとして解釈されるため、構文エラーが発生します。ただし、これでも予約語を使用できますが、次のようにバッククォート内に予約語を含めてください。 `select`

MySQLの各バージョンには、MySQLリファレンスマニュアルで確認できる独自の予約語があります。1064エラーの原因であると思われる場合は、簡単な検索と置換を行って確認できます。

4. 見つからないデータを追加する

MySQLクエリがデータベース内の情報を参照しようとしているが、その情報が見つからない場合、異常が発生するのは明らかなことでしょう。上記の解決策のいずれもMySQL 1064エラーを解決できない場合は、見つからないデータがないかを確認した方が良いでしょう。

残念ながら、これも非常に面倒のかかる手作業です。この場合、最新のクエリから始めて新しい順に進んだ方が良いでしょう。参照される各データベースをチェックし、情報があるかを確認します。データが見つからないクエリを特定するまで、クエリを一つずつ確認します。

5. 互換モードを使用してWordPressデータベースを移動する

1064エラーの最後の解決策は、上記の対策ほど簡単ではありません。ただし、WordPressサイトを新しいサーバー会社に移行したり、別のサーバーに移動したりする場合は、データベースの異常が発生しないように追加の手順を実行する必要があります。

最も簡単な方法は、WP Migrate DBなどの互換モードのあるマイグレーションプラグインを使用することです。

WordPressプラグインWP Migrate DB
WordPressプラグインWP Migrate DB

これを使用すると、自動検出機能が有効になり、最新のサイトバックアップとデータベースがMySQLの複数のバージョンとの互換性があるかことが確認されます。互換モード設定にアクセスするには、「ツール」 > 「Migrate DB」 > 「Advanced Options」に移動します。

WP Migrate DBの設定画面
WP Migrate DBの設定画面

サイトの移行を開始する前に、「Compatible with older versions of MySQL」(MySQLの古いバージョンと互換性があります)にチェックを入れます。これにより、移動中に異常が発生しないはずです。

まとめ

データベースエラーが発生すると、作業計画が邪魔され、ウェブサイトにも悪影響を及ぼす可能性もあります。MySQL 1064エラーなどの異常の解決策を覚えておくと、迅速に対応し、サイトのダウンタイムを最小限に抑えることができます。

発生原因により、MySQL 1064エラーが発生したときに実施できる対策は5つあります。

  1. コマンドの入力ミスを修正する
  2. 廃止されたコマンドを置き換える
  3. 予約語を指定する
  4. 見つからないデータを追加する
  5. 互換モードを使用してWordPressデータベースを移動する
Matteo Duò

Head of Content at Kinsta and Content Marketing Consultant for WordPress plugin developers. Connect with Matteo on Twitter.