The last packet successfully received from the server was x milliseconds agoソリューション
1663 ワード
この問題に遭遇して多くのブログを調べたが、基本的には大同小異だが、何の役にも立たない.
参考記事:https://blog.csdn.net/frankcheng5143/article/details/50589264ここに移動して表示できます.
ネット上のシナリオ:
1.mysqlサーバのwait_をtimeoutは無限大に設定されており、タイムアウトしないことを保証しています(できるかどうかはわかりませんが、採用はお勧めしません(実際には何の役にも立たないですが、5.0以前のmysqlに適用するという文章があります)、このように
2.プロンプトに従って自動再接続autoReconnect=trueをデータベースリンクのコードに追加します.
3.mysqlでのwait_timeout時間内に心拍数を1回発生させ、接続の有効性を保証する
4.使用時に接続の有効性を検出し、無効になったら新しい接続を取得する
シナリオ1とシナリオ2は基本的に役に立たない、あるいは独立してこれらのパラメータを設定するのは基本的に役に立たない、他のパラメータを結合する必要がある.しかし、検索された多くのブログの記事は1,2をめぐって、設定しても何の役にも立たないと言え、重要なパラメータidleConnectionTestPeriodには一言も触れていない.
政府は第3の方法を採用することを提案した.
プロジェクトの完全な構成
参考記事:https://blog.csdn.net/frankcheng5143/article/details/50589264ここに移動して表示できます.
ネット上のシナリオ:
1.mysqlサーバのwait_をtimeoutは無限大に設定されており、タイムアウトしないことを保証しています(できるかどうかはわかりませんが、採用はお勧めしません(実際には何の役にも立たないですが、5.0以前のmysqlに適用するという文章があります)、このように
set global wait_timeout=28800;
2.プロンプトに従って自動再接続autoReconnect=trueをデータベースリンクのコードに追加します.
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false
3.mysqlでのwait_timeout時間内に心拍数を1回発生させ、接続の有効性を保証する
4.使用時に接続の有効性を検出し、無効になったら新しい接続を取得する
シナリオ1とシナリオ2は基本的に役に立たない、あるいは独立してこれらのパラメータを設定するのは基本的に役に立たない、他のパラメータを結合する必要がある.しかし、検索された多くのブログの記事は1,2をめぐって、設定しても何の役にも立たないと言え、重要なパラメータidleConnectionTestPeriodには一言も触れていない.
政府は第3の方法を採用することを提案した.
testConnectionOnCheckout false
testConnectionOnCheckin true
idleConnectionTestPeriod 30, , , 8 , 90
プロジェクトの完全な構成
jdbc.jdbcUrl = jdbc:mysql://117.*.*.*:9966/databasename?useUnicode=true&characterEncoding=utf8&autoReconnect=true
jdbc.user = root
jdbc.password = root
jdbc.miniPoolSize = 1
jdbc.maxPoolSize = 100
jdbc.initialPoolSize = 1
jdbc.maxIdleTime = 3600
jdbc.acquireIncrement = 1
jdbc.acquireRetryAttempts = 30
jdbc.acquireRetryDelay = 1000
jdbc.testConnectionOnCheckout=false
jdbc.testConnectionOnCheckin = true
jdbc.automaticTestTable = c3p0TestTable
# ,idleConnectionTestPeriod , 10000
jdbc.idleConnectionTestPeriod = 90
jdbc.checkoutTimeout=30000