最近このような問題が発生した場合は、com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1905) で報告されます。
com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2351) で
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2862) で
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571) で
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666) で
com.mysql.jdbc.Connection.execSQL(Connection.java:2988) で
com.mysql.jdbc.Connection.execSQL(Connection.java:2917) で
com.mysql.jdbc.Statement.executeQuery(Statement.java:824) で
com.zycy.db.DbTrans.executeQuery(DbTrans.java:127) で
このようなエラーは Tomcat サービスを再起動すると解決されますが、この問題は夜間に発生します。
mysql JDBC URL 形式は次のとおりです。
jdbc:mysql://[ホスト:ポート],[ホスト:ポート].../[データベース][?パラメータ名1][=パラメータ値1][&パラメータ名2][=パラメータ値2]..
一般的に使用されるいくつかのより重要なパラメータ:
パラメータ名 パラメータの説明 デフォルト値 最小バージョン要件
ユーザー データベース ユーザー名 (データベースへの接続に使用) すべてのバージョン
パスワード ユーザーパスワード (データベースへの接続に使用) すべてのバージョン
useUnicode Unicode 文字セットを使用するかどうか。パラメータcharacterEncoding が gb2312 または gbk に設定されている場合、このパラメータ値は true false 1.1g に設定する必要があります。
CharacterEncoding useUnicode が true に設定されている場合、文字エンコーディングを指定します。たとえば、gb2312 または gbk false 1.1g に設定できます。
autoReconnect データベース接続が異常切断された場合、自動的に再接続しますか?偽 1.1
autoReconnectForPools データベース接続プールの再接続戦略を使用するかどうか false 3.1.3
failedOverReadOnly 自動再接続が成功した後、接続は読み取り専用に設定されていますか?真 3.0.12
maxReconnects autoReconnect が true に設定されている場合、接続の再試行回数は 3 1.1 です。
InitialTimeout autoReconnect が true に設定されている場合、2 回の再接続間の時間間隔、単位: 秒 2 1.1
connectTimeout データベース サーバーとのソケット接続を確立するときのタイムアウト (単位: ミリ秒)。 0 はタイムアウトしないことを意味し、JDK 1.4 以降に適用されます 0 3.0.1
socketTimeout ソケット操作 (読み取りおよび書き込み) のタイムアウト、単位: ミリ秒。 0 はタイムアウトしないことを意味します 0 3.0.1
中国語環境に対応して、通常、mysql 接続 URL は次のように設定できます。
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false
データベース接続プールを使用する場合は、次の 2 つのパラメータを設定することをお勧めします。
autoReconnect=true&failOverReadOnly=false
XML 構成ファイルでは、URL 内の & 記号を & にエスケープする必要があることに注意してください。たとえば、tomcat の server.xml でデータベース接続プールを設定する場合、mysql jdbc URL サンプルは次のとおりです。
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect