ホームページ  >  記事  >  データベース  >  Mybatis と Spring で「com.mysql.jdbc.Exceptions.jdbc4.CommunicationsException: Communications Link Failure」が発生するのはなぜですか?

Mybatis と Spring で「com.mysql.jdbc.Exceptions.jdbc4.CommunicationsException: Communications Link Failure」が発生するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-16 10:05:02421ブラウズ

Why Am I Getting

"com.mysql.jdbc.Exceptions.jdbc4.CommunicationsException: 通信リンク障害 ソフトウェアによる接続中止: recv failed [duplicate]"

問題:

を使用して MySQL のレコードを更新しているときMybatis と Spring では、ソケット読み取りエラーによる通信リンクの障害を示す例外が発生しました:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 18,940 milliseconds ago.  The last packet sent successfully to the server was 18,918 milliseconds ago.

原因:

MySQL 接続は、接続プールが認識する

解決策:

この問題を解決するには、次のようないくつかのアプローチを取ることができます:

  1. タイムアウトを増やすMySQL 構成ファイルの値(my.ini):

    MySQL 構成ファイル (my.ini) の wait_timeout パラメーターを増やして、接続に許可されるアイドル時間を延長します。

  2. 接続プールのアイドル時間を削減します:

    接続プールを構成しますMySQL が閉じる前に接続を破棄します。これを実現するには、minIdle および maxIdle 時間パラメーターの値を低く設定します。

  3. 接続検証クエリの追加:

    検証クエリを追加します。接続プールの構成に変更します。このクエリにより、プールは各接続を発行する前に確実にテストします。ただし、このアプローチではパフォーマンスのオーバーヘッドが発生する可能性があります。

以上がMybatis と Spring で「com.mysql.jdbc.Exceptions.jdbc4.CommunicationsException: Communications Link Failure」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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