Mysql
 sql >> Datenbank >  >> RDS >> Mysql

was ist java.io.EOFException, Nachricht:Antwort vom Server kann nicht gelesen werden. Erwartet, 4 Bytes zu lesen, 0 Bytes zu lesen

Die Verbindung ist fehlgeschlagen, möglicherweise aufgrund einer Leerlaufzeitüberschreitung der Firewall usw. Wenn Sie Ihren JDBC-Treiber nicht so konfiguriert haben, dass er bei einem Fehler erneut eine Verbindung herstellt, wird dieser Fehler nicht verschwinden, es sei denn, Sie öffnen eine neue Verbindung.

Wenn Sie einen Datenbankverbindungspool verwenden (Sie sind verwenden, oder?), dann möchten Sie wahrscheinlich die Funktionen zur Verbindungsprüfung aktivieren, z. B. das Senden einer Abfrage, um zu überprüfen, ob die Verbindung funktioniert, bevor Sie sie an die Anwendung zurückgeben. In Apache commons-dbcp wird dies als validationQuery bezeichnet und wird oft auf etwas Einfaches wie SELECT 1 gesetzt .

Da Sie MySQL verwenden, sollten Sie eine Connector/J-spezifische "Ping"-Abfrage verwenden, die weniger Gewicht hat als die eigentliche Ausgabe einer echten SQL-Abfrage, und Ihre Validierungsabfrage auf /* ping */ SELECT 1 (der Ping-Teil benötigt um genau zu sein ).