Problem:
Beim Aktualisieren eines Datensatzes in MySQL mit Mybatis und Spring ist eine Ausnahme aufgetreten, die auf einen Kommunikationsverbindungsfehler hinweist, der durch Socket-Lesefehler verursacht wurde:
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.
Ursache:
Bei den MySQL-Verbindungen kommt es zu einer Zeitüberschreitung, bevor der Verbindungspool sie erkennt.
Lösung:
Um dieses Problem zu beheben, gibt es mehrere Ansätze genommen:
Erhöhen Sie den Timeout-Wert in der MySQL-Konfigurationsdatei (my.ini):
Erhöhen Sie den Parameter „wait_timeout“ in der MySQL-Konfigurationsdatei (my.ini). .ini), um die zulässige Leerlaufzeit für Verbindungen zu verlängern.
Leerlaufzeit im Verbindungspool reduzieren:
Konfigurieren Sie den Verbindungspool so, dass Verbindungen verworfen werden bevor MySQL sie schließt. Dies kann erreicht werden, indem ein niedrigerer Wert für die Parameter minIdle und maxIdle time festgelegt wird.
Validierungsverbindungsabfrage hinzufügen:
Validierungsabfrage hinzufügen zur Verbindungspoolkonfiguration. Diese Abfrage stellt sicher, dass der Pool jede Verbindung testet, bevor er sie ausgibt. Dieser Ansatz kann jedoch zu Leistungseinbußen führen.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in Mybatis und Spring „com.mysql.jdbc.Exceptions.jdbc4.CommunicationsException: Communications Link Failure'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!