ホームページ >データベース >mysql チュートリアル >MySQL エラー 1436: スレッド スタック オーバーランが発生するのはなぜですか?

MySQL エラー 1436: スレッド スタック オーバーランが発生するのはなぜですか?

DDD
DDDオリジナル
2024-11-15 18:28:021042ブラウズ

Why am I getting MySQL Error 1436: Thread Stack Overrun?

エラー 1436: MySQL のスレッド スタック オーバーランについて

更新クエリを実行しようとすると、不可解なエラーが発生します:「スレッド スタック オーバーラン」 : 131072 バイトのスタックのうち 6136 バイトが使用され、 128000バイトが必要です。」コードを詳しく調べると、スレッドの実行に使用できるスタック メモリが不足している場合にエラー 1436 (ER_STACK_OVERRUN_NEED_MORE) がトリガーされることがわかります。

デフォルトのスレッド スタック サイズと構成

通常, MySQL は、スレッド スタック サイズをデフォルト値の 192K (32 ビット アーキテクチャ) に設定します。または 256K (64 ビット プラットフォーム)。ただし、この値は、my.cnf 設定を変更するか、カスタム ビルドを通じてオーバーライドできます。

考えられる原因

この問題は、さまざまな原因から発生する可能性があります。

  • カスタム サーバーは変更されたデフォルトのスタック サイズで構築されます
  • の明示的な構成スタック サイズが削減された my.cnf
  • pthread ライブラリ内の潜在的な問題

デフォルト値と構成の確認

実際のスレッドを確認するにはスタック サイズを確認するには、次のクエリを実行します。

SHOW VARIABLES LIKE 'thread_stack';

明示的な thread_stack 設定の my.cnf ファイル。

トラブルシューティングと解決策

このエラーを解決するには、スレッド スタックを増やすことに重点を置きます:

  1. My.cnf 変更: my.cnf を編集して設定します「thread_stack」をデフォルトより大きい値 (例: 512K または 1MB) に設定します。
  2. サーバーの再起動: 新しい設定を有効にするために MySQL を再起動します。
  3. スタック サイズの確認: 次のコマンドを実行して、スタック サイズが予想どおりに変更されたことを確認します。 '「thread_stack」のような変数を表示;' query.

その他の考慮事項

サーバーの再起動後にこのエラーが発生した場合は、サーバー ログ ファイルにエラーがないか確認してください。これらのエラーは、スレッド スタック サイズの設定に問題があることを示している可能性があります。

以上がMySQL エラー 1436: スレッド スタック オーバーランが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。