問題:
を使用して 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 接続は、接続プールが認識する
解決策:
この問題を解決するには、次のようないくつかのアプローチを取ることができます:
タイムアウトを増やすMySQL 構成ファイルの値(my.ini):
MySQL 構成ファイル (my.ini) の wait_timeout パラメーターを増やして、接続に許可されるアイドル時間を延長します。
接続プールのアイドル時間を削減します:
接続プールを構成しますMySQL が閉じる前に接続を破棄します。これを実現するには、minIdle および maxIdle 時間パラメーターの値を低く設定します。
接続検証クエリの追加:
検証クエリを追加します。接続プールの構成に変更します。このクエリにより、プールは各接続を発行する前に確実にテストします。ただし、このアプローチではパフォーマンスのオーバーヘッドが発生する可能性があります。
以上がMybatis と Spring で「com.mysql.jdbc.Exceptions.jdbc4.CommunicationsException: Communications Link Failure」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。