WordPressのデータベースで発生した課題をトラブルシューティングして修復することはよくある作業です。
データベースに接続できない場合、または一部のファイルが破損している場合は、WordPressのデータベースの課題が発生した可能性があります。
しかし、WordPressのデータベースをどのように修復すればいいでしょうか?
本記事では、WordPressのデータベースの原因調査と異常修正についてご説明します。または、WordPressのデータベースの異常の再発防止についても述べます。
WordPressのデータベースの修復が必要かどうかを判断する
WordPressユーザーのあなたもおそらくエラーを十分に経験してきたでしょう。異常が発生しないウェブサイトを運営することは無理でしょう。しかし、データベースの異常をどのように特定するのでしょうか?
データベース異常が発生したと判断できる印はたとえば次のとおりです。
- 「データベース接続の確立エラー」が表示されています。
- サイトに画像がありません。
- サイトにコンテンツがありません。
「データベース接続の確立エラー」は、おそらくWordPressサイトで最もよく表示されるエラーメッセージの一つです。まるでコードの問題が発生した場合に表示される「死の真っ白画面」のように怖いものです。
ただし、修正方法は非常に簡単です。
異常修正のさまざまな方法に入る前に、まず データベースの問題の考えられる原因 を見てみましょう。
データベースを修復する6つのよくある理由
以下に、データベース異常のよくある原因をいくつか示します。詳細な警告メッセージが表示されるものもあれば、一般的な「データベース接続の確立エラー」メッセージが表示されるものもあります。
よくある状況を確認してから、WordPressのデータベースを修復する方法を確認しましょう。
1. データベースの認証情報は一致していない
これはWordPressのデータベース接続異常の最もよくある原因です。幸いなことに、最も簡単に修正できる原因でもあります。
wp-config.phpファイルを簡単な修正するか、コードを自分で編集したくない場合は、プラグインを使用して修正するだけです。MyKinstaでデータベース認証情報を確認するにはこちらをご参照ください。
2. 接続の問題
データベースにアクセスできない原因の一つは、サーバーへの接続異常です。安価なホスティングをご利用の場合、サーバーが遅いか応答しないことがあります。良いホスティング会社はアップタイムを保証しているため、異常の原因はサーバーでないはずです。
しかし、サーバーの異常が発生していないかをホスティング会社に確認する価値があります。
3. PHPのメモリのご利用限度額を超過している
私の経験では、このエラーはメディアをサイトにアップロードするときに頻繁に発生するエラーです。
サイトのメモリのご利用限度額を超過していることを意味します。修正するには、コードの編集、ホスティング会社への設定変更の申請、またはプラグインの使用が必要です。
4. データベースのテーブルが破損している
データベースのテーブルが破損した場合は、データベースをクリーンアップする必要があります。認証情報が正しくて、接続異常が発生していなく、PHPのメモリのご利用限度額を超過していない場合は、次に考えられる原因は破損したデータベースです。
破損したデータベーステーブルをphpMyAdminを使用して修正します。(方法については後程説明します。)
5. 破損したファイル
WordPressインストールに破損したファイルがある場合、データベース異常が発生することがあります。破損したファイルは、ファイルが破損しているプラグインのため、または開発者の一人が行った編集ミスのため発生しています。(WordPress開発者の正しい雇い方についてはこちらをご参照ください。)
破損したファイルを修正する方法については、すぐに説明します。
6. サイトまたはデータベースがハッキングされた
最も恐ろしい原因であるため、これを意図的に最後に残しました。WordPressサイトやデータベースがハッキングされた可能性があります。ただし、ハッキングが原因でデータベースに異常発生している場合、その修正は思ったほど難しくありません。
ホスティング会社からヘルプを得る(Kinstaはどのハッキングが発生しても対応します)か、自分で修正します。
さて、いよいよデータベースの修正に取り掛かる時です!
WordPressのデータベースを修正するには
データベース異常のよくある原因がわかりましたので、「WordPressのデータベースを修復するにはどうすればよいでしょうすか?」を知りたがっているでしょう。
手順は、異常の特徴によって異なります。最もよくある異常の解決方法であるため、まず最も簡単な手順から始めましょう。
データベースでより深刻な異常が発生していることがすでにわかっている場合は、このセクションの関連部分にジャンプしてください。
バックアップから開始
データベースを修復する手順は、必ずサイトのバックアップを作成ることから始めてください。
バックアッププラグインを使用するか、ホスティング会社のインターフェースで手動でバックアップを作成します。KinstaはWordPressサイトのバックアップを毎日自動的に生成しますが、必要に応じて手動でバックアップを作成したり、頻度を増やしたりすることもできます。
データベースログファイルを使用してWordPressのデータベースエラーを調査する方法
最初のステップは、エラーログを確認して異常を特定することです。特定方法は3つあります。
- FTPを使用して未加工のWordPressログを表示します。
- wp-config.phpでエラーログを有効にします。
- MyKinstaを使用してログにアクセスします(下の画像)。
MyKinstaの「ログビューアー」に簡単にアクセスできます。
ログには、サイトの状況や発生したエラーなどが表示されます。これらを使用して、データベース接続異常を調査できます。
調査が完了したら、以下の原因に関連する修正方法を実施します。調査ができない場合は、下記の修正方法を順番に実行してください。(最も単純で一般的なものから始まります。)
WordPressデータベースの認証情報を編集する方法
データベース接続の確立エラーの最もよくある原因は、データベースの認証情報は一致していないことです。
データベースの認証情報を編集するには、wp-config.phpファイルのバックアップ用のコピーを作成してから、元のファイルを開きます。バックアップを作成することは、ミスを犯した場合に不可欠です。
wp-config.phpファイルはWordPressインストールのルートディレクトリにあります。アクセスするには、SFTPを使用してサイトに接続します。
このファイルには、次の、サイトがデータベースに正常に接続する場合に正しくなければない4つの情報があります。
- データベース名
- MySQLデータベースのユーザー名
- MySQLデータベースのパスワード
- MySQLホスト名
wp-config.phpファイルでは、上記の4つの情報は次のようになります。
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'xxxxxx');
/** MySQL database username */
define('DB_USER', 'xxxxxx');
/** MySQL database password */
define('DB_PASSWORD', 'xxxxxx');
/** MySQL hostname */
define('DB_HOST', 'xxxxxx');
データベースの認証情報は、ホスティング会社の管理画面または、ホスティングアカウントのセットアップ時に最初に受信したメールにあるはずです。
Kinstのお客さまには、データベース認証情報をMyKinstaで簡単に確認していただけます。具体的には、「サイト」に移動して該当のサイトを選択します。 「データベースアクセス」までスクロールダウンすると、データベースに関連する情報があります。
また、phpMyAdminでもデータベースの認証情報を確認することができます。phpMyAdminは、ホスティング会社がインターフェイスとして提供している場合、cPanelを使用してアクセスできます。
データベースの認証情報を正しい認証情報に更新したら、新しくなったwp-config.phpファイルを保存して閉じ、サイトに再度アクセスしてください。
それでもデータベースにアクセスできない場合は、次の手順に進んでください。
WP_ALLOW_REPAIRを使用してWordPressのデータベースを修正するには
次にできることは、データベースの異常を修正するようにWordPressに指示することです。これを行うには、wp-config.phpファイルに行を追加します。
ファイルを開き、次の行を見つけます。
/* That's all, stop editing! Happy blogging.*/
その行の直上に次の行を追加します。
define ('WP_ALLOW_REPAIR', 'true');
次に、wp-config.phpファイルを保存してファイルを閉じます。
繰り返しますが、念のため、最初にwp-config.phpファイルのバックアップを必ず作成してください。
次のステップは、データベース修復ページにアクセスすることです。 これはhttp://your-site.com/wp-admin/maint/repair.phpにあります。your-site.com をあなたのウェブサイトのドメインに置き換えてください。
これにより、データベースの修復ページに移動します。
以下の選択ができます。
- Repair the database(データベースの修復)
- Repair and optimize the database(データベースの修復と最適化)
「データベースの修復と最適化」を選択した場合、サイトが効率的に実行できるようにWordPressはデータベースのテーブルを最適化します。
上記の2つのボタンのいずれかをクリックして、WordPressがデータベースを修復するのを待ちます。これで、サイトは正常に機能するはずです。
完了後に、wp-config.phpファイルに追加した行を忘れずに削除してください。
しかし、これもうまくいかない場合はどうなりますか? 次のステップは、phpMyAdminに移動してデータベースを修復することです。
phpMyAdminでWordPressのデータベースを修正するには
上記の手順を実施しても、データベースに接続できませんか?phpMyAdminを使用して修復してみましょう。
データベースに直接アクセスする自信がない場合は、プラグインを使用することをお勧めします。WordPressデータベースの修復に使用できるプラグインの一部については、この記事の後半に述べます。
phpMyAdminには、ホスティング会社の管理画面からアクセスできます。MyKinstaでは、「サイト」をクリックし、該当のサイトを選択して、「phpMyAdminを開く」をクリックします。
phpMyAdminにログインしたら、左側のデータベースのリストの該当のデータベースをクリックします。データベースのテーブルが右側に読み込まれます。
スクロールダウンして、「Check All」(すべて選択)をクリックします。次に、「With selected」(選択済み)ボックスで「Repair table」(テーブルの修復)を選択します。
その後、システムはデータベーステーブルを処理し、修復を行います。
しかし、上記の手順を実施しても、修復できない場合、または別の方法でサイトにアクセスしたい場合はどうでしょうか?別の方法を試してみましょう。
WP-CLIでWordPressのデータベースを修正するには
コマンドラインを使用してWordPressインストールにアクセスしている場合、WP-CLI を使用してデータベースを修復できます。
これを行うには、wp db repairコマンドを使用します。これは、データベースを修復する最も速い方法です。
PHPのメモリのご利用限度額を増やす方法
PHPのご利用限度額を超過しているためにデータベースへの接続異常が発生した場合は、ご利用限度額を増やすための措置を講じることができます。
wp-config.phpファイルで、次の行を探します。
define( 'WP_MEMORY_LIMIT', 256M' );
256MはPHPのメモリのご利用限度額です。数値が小さい場合は、編集して大きくします。通常のWordPressサイトには256Mで十分です。ファイルにある数値はサイトの現在のメモリのご利用限度額を表しているため、256Mとは異なる場合があります。また、この行はまったくない場合もあります。
ご利用のホスティングプランのメモリのご利用限度額をさらに増やせない場合、プランをアップグレードする必要がある場合があります。または、メモリのご利用限度額の多いプロバイダーに切り替えることもできます。
データベース修復プラグインを使用してWordPressのデータベースを修正するには
上記の手順に自信がない場合は、代わりにプラグインを使用してデータベースを修復できます。これには、サイトへの管理者アクセス権が必要です。
データベースを修復できるプラグインには次のものがあります。
- WP-DBManager
- Advanced Database Cleaner
- WP Config File Editor(直接アクセスせずにwp-config.phpファイルを編集できます。)
WordPressのデータベースを最適化するには
データベースの異常を修復した後(または異常が発生する前の予防策として)、再発防止の措置を取ることをお勧めします。WordPressデータベースの管理や再発防止の対策をいくつか紹介します。
Kinstaの自動データベース最適化
Kinstaでは、お客様のサイトのデータベースがバックグラウンドで自動的に最適化されるため、異常が発生する可能性がはるかに低くなります。
データベース最適化プラグイン
ご利用のホスティング会社がデータベースを最適化しない場合、プラグインを使用することができます。データベース最適化プラグインには以下があります。
注意点:Kinstaでは、データベース最適化プラグインは、当社の自動最適化プロセスに干渉するため、必要ありません。
MySQLインデックスをWordPressのwp_optionsテーブルに追加する
MySQLインデックスをwp_optionsテーブルに追加する(または削除する)と、データベース接続を高速化できます。こちらのガイドに従って、サイトを高速化するための最適なオプションを抽出してください。
データベース管理とセキュリティのベストプラクティス
データベースを管理するためのベストプラクティスは、WordPress ウェブサイトの正しい管理に近いです。
- 定期的なバックアップを作成します。データベースを再度修復する必要がある場合、定期的な自動バックアップがあると、安心です。バックアッププラグインを使用してください。Kinstaのお客さまである場合は、指一本動かさずにサイトが毎日バックアップされるため、ご安心ください。
- データベースが常に最適化された状態で、スムーズに実行されることを確保してください。これを行うには、データベース最適化プラグインを使用するか、やってくれるホスティング会社を選択します。
- 相手を信頼しない限り、データベースのパスワードを決して漏らさないでください。通常の作業ならデータベースのパスワードが必要になることはめったにないため、パスワードを求められたら、理由を尋ねてください。
- 他人にデータベースへのアクセスを許可された場合は、その人が作業を終えた後に認証情報を変更し、wp-config.php fileファイルを更新してください。
- WordPressの管理画面、ホスティングアカウント、およびFTP / SFTPアクセスには安全なパスワードのみを使用してください。パブリック接続の場合は、FTPよりもSFTPを優先して使用しましょう。
- データベースにテーブルやレコードなどを追加するプラグインを作成する場合は、プラグインが削除されたときにそのテーブルやレコードなども削除するようにしてください。独自のテーブルを追加したプラグインを削除した後、データベースをクリーンアップしてください。
- サイトを安全に保ち、ハッキングから保護するための対策を講じてください。
まとめ
WordPressのデータベースへの接続に発生する課題は難しいことに違いありません。ただし、上記の手順に従えば、簡単に修復してすぐにアクセスできるようになります。
今後、同じ課題が再発しないように上記の指導に従ってください。そうすると、データベースを再度修復する必要がないはずです。