MySQL エラーのトラブルシューティング: 「準備されたステートメントを再準備する必要があります」
変更された PHP コードと MySQL ストアド プロシージャを含む Web サイトの移行時ローカル環境からホスティング サーバーに至るまで、永続的な致命的なエラー「'準備されたステートメントを再準備する必要があります'」がサイトの運用に影響を及ぼしています。
エラーの原因:
根本的な問題は、準備されたステートメントのキャッシュに影響を与える MySQL バグ #42041 に関連している可能性があります。ステートメントのキャッシュが不十分な場合、サーバーは再起動後に準備されたステートメントの再利用に失敗し、エラーが発生する可能性があります。
解決策:
解決策は、サーバーのキャッシュを調整することです。 table_definition_cache 変数。この変数は、定義がメモリにキャッシュされるテーブルの最大数を設定します。この値を増やすことで、より多くのプリペアド ステートメントをキャッシュできるようになり、エラーを解決できる可能性があります。
実装:
table_definition_cache の値を変更するには、次の手順に従います。
SHOW VARIABLES LIKE 'table_definition_cache';
SET GLOBAL table_definition_cache = <new-value>;
追加リソース:
準備されたステートメントのキャッシュの詳細については、MySQL の公式ドキュメントを参照してください:
https://dev.mysql.com/doc/refman/8.0 /en/statement-caching.html
以上が移行後に Web サイトで「準備されたステートメントを再準備する必要があります」というエラーがスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。