WordPressで発生した記事の更新に失敗する問題は何が原因なのでしょうか?
今回は「更新に失敗しました。 データベース内の投稿を更新できませんでした。」のエラーメッセージに対処した方法を紹介します。
記事の更新に失敗する主な原因は記事内のコンテンツやX(旧Twitter)の引用で使われた「特殊文字等の影響」が考えられます。
WordPressで記事更新に失敗した問題を解消する2つの方法を紹介します。
当記事で紹介するポイントは以下の通りです。
2.更新に失敗する原因
3.2つの対処方法を解説
4.対処後の結果
記事の更新に失敗した状況とは?
WordPressでブログ記事をリライトしていた時のことです。
それまで順調にリライトが進んでいて約15,000字の記事が完成まじかになった時にエラーメッセージが表示されました。こんな感じです。
エラーメッセージを拡大すると以下の通りです。
記事の更新に失敗してデータベース内の投稿を更新できなかったと表示されました。
発生したのは次の2つの場面です。
- ブログ記事の本文作成中に発生
- X(旧Twitter)を引用した時に発生
記事作成の途中で、別の記事から表組をコピーして貼り付けた特に「更新に失敗しました・・・」のエラーが発生しました。
また、X(旧Twitter)のポストを引用したら「更新に失敗しました・・・」とエラーが発生しました。
つまり、「更新に失敗しました。データベース内の投稿を更新できませんでした。」のエラーは、本文作成中でも、X(旧Twitter)からの引用でも発生することが分かります。
その後、プレビューを見ようとボタンをクリックしたら、
「更新に失しました。エラー:データベース内の投稿を更新できません」
と表示されました。
別のテスト用ブログWordpress5.3で同一の環境下でも同様のエラーが発生しました。
更新に失敗する原因を調査
WordPressでデーターベースと言えば「MySQL」が該当します。
ぼくが利用しているレンタルサーバーは「エックスサーバー」です。(PR公式サイト:エックスサーバー )
推測されるのはデーターベース「MySQL」に何かエラーが発生したというアクシデントです。
サーバー側のエラーが原因か?
エックスサーバー側でのエラーの可能性を調べましたが、原因は見つかりませんでした。
エックスサーバーでは「MySQL」がダメージにより入れ替えたばかりなのでその影響も心配されました。
しかし、正常に動作しており原因ではありませんでした。
WordPress、テーマが原因か?
WordPressのテーマは「Cocoon」です。
特にテーマに特別な設定等は行わずほぼオリジナルのままで使っていますので原因は見当たらず。
テーマ:Cocoon
運営しているほかのブログでもチェックしましたが動作は正常で原因は見当たりません。
プラグインが原因か?
プラグインを調べてみました。
その結果干渉や不具合の発生は確認されず正常な動作で運用がなされています。
主なプラグインをチェック
Category Order and Taxonomy Terms Order
Contact Form 7
EWWW image optimizer
Code Snippets
XML Sitemap Generator for Google
Wordfence Security
他
原因はコンテンツのに使用した「特殊文字」
レンタルサーバー、WordPress、テーマ、プラグインには原因が見つかりませんでした。
そこで気になったのが、X(旧Twitter)の引用から「更新に失敗しました。データベース内の投稿を更新できませんでした。」のエラーが発生したことです。
この問題は他でも発生しているのではないかと推測して調べてみると、同じエラーが発生した記事を見つけました。
その方はX(旧Twitter)の引用を削除したらエラーが解消したと記録していました。
その原因は「特殊文字」の使用がデーターベースの更新を妨げていたことが確認されました。
「特殊文字」利用について2つの対処方法を解説
「更新に失敗しました。データベース内の投稿を更新できませんでした。」のエラーは特殊文字の利用が影響したことが判明しました。
そこで、2つの解決方法を行うことにしました。
- X(旧Twitter)の引用をURLで行う方法
- エックスサーバーのMySQLの設定を変更する方法
ではこれらの2つの方法について処理手順を順番に説明します。
X(旧Twitter)の引用をURLで行う方法
ひとつは、X(旧Twitter)の引用をURLリンクで行うことです。
URLリンクで引用すると特殊文字が直接的にブログ記事に影響することがないのが理由です。
X(旧Twitter)のポストの右下にある矢印のアイコンをクリックします。
メニューが表示されるので「リンクをコピー」をクリックしてリンクを取得します。
取得したリンク(URL)を自分のブログにそのまま張り付けて引用する方法です。
これでX(旧Twitter)で特殊文字が使われていても、今回の問題は発生しなくなります。
サーバーのMySQLの設定を変更する方法
ぼくはエックスサーバー を利用しているので、エックスサーバーでの設定方法を説明します。
「更新に失敗しました。データベース内の投稿を更新できませんでした。」のエラーをX(旧Twitter)だけではなく全てのコンテンツで解決するためには、サーバー側で設定することが必要です。
サーバー側でMySQLを設定する理由は、WordPressで書いた記事に特殊文字を使ってもエラーにならない様にするためです。
設定は専門的になりますが「MySQLの文字コードと照合順序の組み合わせを変更する」という対策をします。
ではエックスサーバーでの設定方法を解説します。
MySQL用のユーザー名とパスワードを用意
初めに必要なMySQL用のユーザー名とパスワードを用意してください。
もし不明な方は次の方法で確認できます。
これから説明する方法が可能な方は「WordPress簡単インストール」でインストールした方です。
それ以外の方は、エックスサーバーのマニュアルを見ると確認できます。
初めにエックスの「サーバーパネル」にログインします。
サーバーパネルにログインしたら、WordPressから「WordPress簡単インストール」をクリックします。
「WordPress簡単インストール」をクリックすると、「ドメイン選択画面」が表示されるので、該当するドメインを選択します。
該当するドメインを選択すると、「MySQLユーザー名」「MySQLパスワード」を確認することができます。
この「MySQLユーザー名」「MySQLパスワード」は以下の設定で使用するので控えておくか、コピーして用意してください。
MySQLの設定方法
初めに「サーバーパネル」にログインします。
サーバーパネルにログインしたら、データーベース欄の「phpmyadmin(MySQL5.7)」をクリックします。
次に「phpmyadmin」にログインします。
ここで先ほど確認した「MySQLユーザー名」「MySQLパスワード」を使ってログインします。
「一般選定」のサーバ接続の照合順序の設定を変更します。
「utf8mb4_unicode_ci」➡ 「utf8mb4_general_ci」に変更します。
最後に設定画面の左上の「EXIT」という小さいアイコンをクリックしてログアウトで完了。
対処後の結果
2つの対処方法を取れば今回の問題は解消することになります。
その結果はどうなのかを説明します。
X(旧Twitter)の引用をURLで行った結果
X(旧Twitter)を引用する場合、URLをリンクする方法ではこの問題は解消しました。
ポストに特殊文字があっても問題なく記事は更新されました。
エックスサーバーのMySQLの設定変更を行った結果
一方、エックスサーバーのMySQLの設定を変更した結果は、問題は解決しませんでした。
理論上では「JIS X 0213の第3~4水準文字の一部と絵文字(😊など)は1文字4バイト使うのでutf8mb4を使います。なのでエックスサーバーでは文字セットはutf8mb4(「utf8mb4_unicode_ci」)をはじめから設定されています。
今回の設定で、なぜ解決しなかったのかは今後の課題です。
今後の課題
普段触れることのないMySQLの設定をエックスサーバーで行いました。
しかし、X(旧Twitter)の特殊文字はこの設定でも解決はできませんでした。
その原因を今後さらに確認してみたいとおもいます。
「更新に失敗しました」の対処方法(まとめ)
今回はWordPressで発生した記事の更新「更新に失敗しました。 データベース内の投稿を更新できませんでした。」のエラーメッセージに対処した2つの方法を紹介しました。
記事の更新に失敗する主な原因は記事内のコンテンツやX(旧Twitter)の引用で使われた「特殊文字等の影響」でした。また本文中での特殊な表なども原因と思われます。
WordPressのMySQLの設定は成功しませんでしたが、次回は解決策を紹介したいと思います。
できるのは特殊文字を使わないことかもしれません。
nao(NAOテック)