ワードプレスの「更新に失敗しました。 データベース内の投稿を更新できませんでした。」というエラーメッセージの原因と解決方法について解説します。
ワードプレスの投稿記事が保存できない!
先日、ワードプレスの投稿記事を下書き保存しようとしたところ、「更新に失敗しました。 データベース内の投稿を更新できませんでした。」というエラーメッセージが表示されてしまいました。
このようなエラーメッセージが表示されるのは初めての経験で、最初はデータベースの容量不足やテーブルの破損などを疑いましたがどうやら原因は別の所にあることが分かりました。
エラーメッセージが表示される原因と解決方法
原因
いろいろ調べた結果、このエラーメッセージが表示されるのは特殊文字が原因だということが分かりました。
私の場合は、記事本文中で使用していた「𠮟責」という言葉の「𠮟」という漢字が原因でした。
なので、このエラーメッセージが表示されたときは、自分で作成した投稿記事本文の中にある普段あまり使わないような記号や漢字に目を付けてチェックしてみてください。
そして、その記号や漢字をいったん削除して保存してみて、エラーメッセージが表示されなければそれが原因だということになります。
以下では、解決方法についても紹介していますが、サーバー側でphpmyadminを触ることになるので、それが面倒だという場合は該当の記号や漢字を別の言葉に置換えて書き直すというのが手っ取り早い対応方法です。
原因が特殊文字ではなくデータベースそのものにあるという場合も考えられます。
解決方法
このエラーメッセージが表示されないようにするためには、サーバー側でMySQLの文字コードと照合順序の組み合わせを変更する必要があります。
以下では、エックスサーバーを例に変更方法を解説します。
まずは、サーバーパネルにログインし、データベースの項目のphpmyadmin(使用している方)にログインします。
ユーザー名とパスワードはMySQLのユーザー名とパスワードになります。サーバーアカウントやFTPのユーザー名とパスワードではありません。分からない場合は、ファイルマネージャーにログインし「該当のドメイン」→「public_html」→「wp-config.php」内に記載があります。
該当のユーザーIDの左側の「+」をクリックします。
「wp_posts」をクリックします。
「構造」タブをクリックします。
この中の「post_content」と「post_title」の照合順序をこれから変更していきます。
右側の「変更」をクリックします。
「照合順序」を「utf8 _general_ci」から「utf8mb4 _general_ci」に変更します。
保存をクリックします。
「post_content」と「post_title」の両方で変更を行い、以下のように照合順序が変更されていることを確認してください。
以上で必要な作業は終了です。phpmyadminはログアウトしてください。
再度、エラーとなっていたページで保存を行ってみてください。エラーメッセージは表示されないはずです。
おわりに
以上、ワードプレスの「更新に失敗しました。 データベース内の投稿を更新できませんでした。」というエラーメッセージの原因と解決方法についての解説でした。
このエラーメッセージが表示されたときはまず特殊文字を疑ってみるようにしましょう。