Ich kenne das Problem aus eigener Programmiererfahrung. Wenn ein Programm zu einem mySQL-Server eine Verbindung aufbaut und diese nur vor sich hin idled (also keine Abfragen stattfinden), dann wird diese Verbindung durch ein Timeout im mySQL-Server getrennt, ohne dass der Client es merkt. Erst wenn wieder eine Anfrage kommt, erhält man diese Fehlermeldung (server has gone away...).
Mein Ausweg war ein Timer der zyklisch eine Sinnlos-Abfrage macht, um die Verbindung am Leben zu halten. Geht natürlich nicht, wenn man ein fertiges Programm hat... da kann man schlecht im Source was tun.
Alternativ müsste man mal schauen, ob sich seitens des mySQL-Servers dieses Verbindungs-Timeout erhöhen lässt. Damit hab ich mich aber noch nicht befasst...