Meine Anwendung muss häufig Verbindungen zu einer MySQL-Datenbank auf einem anderen Computer herstellen. Bei der Verbindung treten jedoch häufig Fehler auf. Ich kann mich normalerweise irgendwann aber nach vielen Wiederholungsversuchen verbinden. Die Fehlermeldung, die ich erhalte, lautet:
Mysql.mysql(): Couldn't connect to SQL-server: Lost connection to MySQL server at 'reading authorization packet', system error: 2
Ich habe die Informationen hier gelesen: http://dev.mysql.com/doc/refman/5.0/en/error-lost-connection.html und auch die Kommentare zum Fehler http://bugs.mysql.com/bug .php? id = 28359 .
Es gibt eine ganze Reihe von abgebrochenen Verbindungen, wie Sie sehen können:
mysql> SHOW GLOBAL STATUS LIKE 'Aborted_connects'; + ------------------ + ------- + | Variablenname | Wert | + ------------------ + ------- + | Abgebrochene_Verbindungen | 2540 | + ------------------ + ------- +
Ich habe das Timeout von 5 auf 15 Sekunden erhöht:
mysql> zeige Variablen wie 'connect_timeout'; + ----------------- + ------- + | Variablenname | Wert | + ----------------- + ------- + | connect_timeout | 15 | + ----------------- + ------- +
aber das hat nicht geholfen. Irgendwelche Vorschläge, wie man das debuggt? Es macht die Datenbankinteraktion schrecklich langsam, wenn es im Durchschnitt fünfmal versuchen muss, eine Verbindung herzustellen, bevor es funktioniert.
Ich habe noch nicht versucht, die Verbindung für die gesamte Lebensdauer der Anwendung offen zu halten. Wäre das besser? Wie verhindere ich, dass die Verbindung geschlossen wird?
Wenn es dem Computer bei den Problemen hilft, ist Windows 7 32-Bit, während der MySQL-Server unter Debian Linux ist.