• 解決済 pyonz

    (@pyonz)


    投稿を追加できません。
    投稿→投稿を追加を押すと

    「データベースに投稿を追加できませんでした。」
    となります。このような表示が出てなにもできません。

    前回投稿の1月までは普通に使えました。試してみたことは

    ・キャッシュのクリア
    ・全プラグイン停止
    ・サーバー空き容量の確認:いっぱい空いてます

    ワードプレス・テーマ・プラグインは最新版にアップデートしました。

    テーマ:Lightning
    PHP (7.4.33)

    よろしくお願いいたします。

12件の返信を表示中 - 1 - 12件目 (全12件中)
  • うーん、何でしょうね…僕もそのメッセージは初めてですね。

    保存時じゃなくて新規追加の時点で出るんですよね?

    DBがいっぱいって事は考えにくいと思うけど…

    1. とりあえずバックアッププラグインなどでバックアップをとる
    2. データベース関連のプラグインを入れて、リビジョンを削除したり、データベースの最適化する

    を試してみてはどうかと思います。

    データベースクリーンナップ系のプラグインの種類や使い方は…調べればいろいろ記事が出てくると思います!

    トピック投稿者 pyonz

    (@pyonz)

    新規追加の時点で出ます。

    データベースクリーンナップ挑戦してみます。ありがとうございます。

    モデレーター Yukinobu Asakawa

    (@yukinobu)

    すみません。別視点からコメントします。

    私も同様の経験がないので、完全に山勘ですが、
    投稿の新規追加の時点で、エラーになっていることを考えると、REST API 通信の失敗の可能性もあります。

    • WAF にブロックされている
    • セキュリティプラグインが REST API を制限
    • Basic認証や Cloudflare 等の干渉
    • nonce エラー
    • JavaScript エラー
    • /wp-json/ への通信失敗

    などのような原因が考えられますが、ブラウザの開発者ツールの Network / Console でエラーログを確認できれば問題の切り分けや絞り込みができるかもしれません。

    トピック投稿者 pyonz

    (@pyonz)

    わたしにはハードルが高そうですがひとづつ挑戦してみたいと思います。ありがとうございます。

    モデレーター Yukinobu Asakawa

    (@yukinobu)

    ↑上記で意図的に難しくコメントしたつもりはありませんが、
    レンタルサーバーをお使いの場合、WAF(Web Application Firewall) の機能を一時的にOFFにしてみて挙動に変化があるかお試しください。

    KEB

    (@kenp0513)

    かなり「雑な最終エラー」なので原因は複数考えられます。
    まず切り分けとして、過去に投稿した記事を更新できるか試してみてください。
    これが通る場合、WordPress本体やサーバー・DB側の問題の可能性は一旦下がります。
    次に問題の記事の添付画像を一度すべて外して投稿できるか試してみてください。
    それで投稿出来たら、画像ファイル名を短い英語にリネームして再アップロードすれば改善することが多いです。

    それでもダメな場合、私なら
    差し障りの無い文章でテスト投稿
    別のブラウザで投稿
    wp-content/debug.logの確認
    プラグインを一つずつ無効化
    テーマ変更
    WPの再インストール

    くらいの順番で試してみます。

    モデレーター まーちゅう

    (@rocketmartue)

    こんにちは。
    エラーメッセージがどこから出ているのか調べてみました。

    「データベースに投稿を追加できませんでした。」は、WordPress 本体(wp-includes/post.phpwp_insert_post() 関数)から出ているもので、データベース(MySQL)への INSERT クエリが失敗した時に表示されます。

    該当箇所: https://github.com/WordPress/WordPress/blob/master/wp-includes/post.php#L4973

    if ( false === $wpdb->insert( $wpdb->posts, $data ) ) {
    if ( $wp_error ) {
    if ( 'attachment' === $post_type ) {
    $message = __( 'Could not insert attachment into the database.' );
    } else {
    $message = __( 'Could not insert post into the database.' );
    }
    return new WP_Error( 'db_insert_error', $message, $wpdb->last_error );
    } else {
    return 0;
    }
    }

    このコードでは、$wpdb->insert()false を返した場合にエラーとなりますが、その際 MySQL が返すエラーメッセージが $wpdb->last_error に格納されています。このエラー内容を確認できれば、原因の特定がぐっと進みます。

    以下の手順で確認できますので、お試しいただけますか?

    1. wp-config.php をFTPやファイルマネージャーで開く
    2. define( 'WP_DEBUG', false ); という行を探す
    3. 以下の3行に書き換えて保存する
    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', false );
    1. もう一度「投稿 → 新規追加」を試す
    2. /wp-content/debug.log というファイルが生成されるので、中身を確認する

    db_insert_errorWordPress database error といった記述があれば、その内容をこちらに共有いただければ原因の特定が進むと思います。

    なお、確認が終わったら WP_DEBUGfalse に戻しておいてください。有効のまま運用するとエラー情報が蓄積され続けます。
    /wp-content/debug.log も削除してください。

    トピック投稿者 pyonz

    (@pyonz)

    みなさまありがとうございます。
    簡単にできそうなとこからやってみました

    ・WP-Optimizeにて最適化
    ・WAF OFF

    変化なしでした。

    過去の投稿記事の文字の編集はできましたが新規画像はできませんでした。
    『データベースに添付ファイルを挿入できませんでした』となります。
    メディアライブラリにあるものは可能でした。

    次試してみます。

    モデレーター Yukinobu Asakawa

    (@yukinobu)

    ありがとうございます。
    WAF は元の状態(ON)に戻しておいてくださいね。

    @rocketmartue さんのコメントにあるように、debug.log を確認できれば原因の絞り込みができると思います。
    今の現象からの推測ですが、PHPのメモリ制限に引っかかっていそうですね。

    モデレーター まーちゅう

    (@rocketmartue)

    PHPメモリ不足でこの特定のエラーメッセージが出る可能性はかなり低いです。

    このエラーメッセージがちゃんと表示されているということは、PHP自体は正常に動いていて、MySQL への INSERT が失敗して false が返ってきて、エラーハンドリングも正常に走っているということなので、原因は PHP 側じゃなくて MySQL 側にあると思います。

    例えば、テーブル破損、文字コードの不一致、max_allowed_packet の制限、ユーザー権限の問題、とか。

    ですので $wpdb->last_error に入ってる MySQL のエラーメッセージを見るのが最短ルートです。

    トピック投稿者 pyonz

    (@pyonz)

    詳しい人に見てもらったところデータベースの容量がいっぱいでした。5141.02MB/5120MB

    phpであれやこれや捨てたんですが減らない・・・・時間の都合で後日になりました。

    今残ってるので一番でかいのはwp_postmeta~1,076,045でした。

    捨てていいものか調べてみます。

    トピック投稿者 pyonz

    (@pyonz)

    データベース容量がパンパンでしたので確認したところ。

    actionscheduler_logsがすごかったので削除したところ解決しました。

    WP-Optimizeのクリーンナップでは削除できなかったのでMysqlより削除しましたが即時に反映されず

    数日後に確認したところデータベース容量が減ってました。勉強になりました。

    ありがとうございます。

12件の返信を表示中 - 1 - 12件目 (全12件中)

このトピックに返信するにはログインが必要です。