MySQL: Fehler beim Lesen eines Kommunikationspakets

Alles, was sonst nirgend reinpasst...
Antworten
Benutzeravatar
Dungeonwatcher
User
User
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

MySQL: Fehler beim Lesen eines Kommunikationspakets

Beitrag von Dungeonwatcher » Sa 22.Jan, 2011 12:24

Hi! :cool:

Ich teste gerade das aktuelle MySQL 5.5.8 zusammen mit phpBB2. Dabei tritt unregelmäßig das Phänomen auf, das die Verbindung zur Datenbank für kurze Zeit abbricht. Das äußert sich in diesen Fehlermeldung:

Im Browser kommt nur ein
ERROR: no connection to mysql
und im Errorlog der DB steht dann:
[Warning] Abbruch der Verbindung 4149 zur Datenbank 'xxx'. Benutzer: xxx', Host: 'localhost' (Fehler beim Lesen eines Kommunikationspakets)
Nach ca. 1 Minute erholt sich das ganze wieder und läuft über Stunden/Tage störungsfrei.
Wenn ich die Dokumentation dazu richtig verstehe, ist dies der Fehler 1158:
Fehler: 1158 SQLSTATE: 08S01 (ER_NET_READ_ERROR)
Meldung: Fehler beim Lesen eines Kommunikationspakets
Nur selbst Tante Google gibt dazu keine wirklich nachvollziehbare Antwort oder gar Lösung. ^6

Was könnte hierfür die Ursache sein?

Bye

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29108
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: MySQL: Fehler beim Lesen eines Kommunikationspakets

Beitrag von oxpus » Sa 22.Jan, 2011 17:20

Keine Ahnung.
Vielleicht in den Einstellungen im Datenbankserver das Verbindungs-Timeout heraufsetzen?
Auf welchem OS läuft denn die Datenbank? Deinem Server online unter Linux?
Die DB-Version ist so neu, da wäre ich immer etwas vorsichtig mit dem produktiven Einsatz...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
Dungeonwatcher
User
User
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Re: MySQL: Fehler beim Lesen eines Kommunikationspakets

Beitrag von Dungeonwatcher » Sa 22.Jan, 2011 18:52

oxpus hat geschrieben:Keine Ahnung.
Da sind wir schon zu Zweit. :)
Vielleicht in den Einstellungen im Datenbankserver das Verbindungs-Timeout heraufsetzen?
Das hatte ich schon getestet. Es dauert dann nur länger bis zur Fehlermeldung kommt.
Auf welchem OS läuft denn die Datenbank? Deinem Server online unter Linux?
Alles seit Jahren unter aktuellstem XP, dazu Apache 2.2.17, PHP 5.2.17.
Die DB-Version ist so neu, da wäre ich immer etwas vorsichtig mit dem produktiven Einsatz...
Naja, bei den 5.1.* Versionen trat dies auch kurz mal auf, allerdings erheblich seltener und da gibt's imho nicht die Möglichkeit solche Fehler mitzuloggen.

Kann es auch ein Netzwerkproblem sein? Wobei dann dürfte es lokal ja nicht auftreten.

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29108
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: MySQL: Fehler beim Lesen eines Kommunikationspakets

Beitrag von oxpus » So 23.Jan, 2011 12:59

Also ist das Problem nur auf deinem lokalen Rechner vorhanden, oder habe ich da jetzt etwas falsch verstanden?
Dann solltest du doch besser eine ältere MySQL-Version verwenden...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
Dungeonwatcher
User
User
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Re: MySQL: Fehler beim Lesen eines Kommunikationspakets

Beitrag von Dungeonwatcher » So 23.Jan, 2011 13:23

oxpus hat geschrieben:Also ist das Problem nur auf deinem lokalen Rechner vorhanden, oder habe ich da jetzt etwas falsch verstanden?
Nun ja, dieser lokale ist jener welcher auch im Netz hängt.
Dann solltest du doch besser eine ältere MySQL-Version verwenden...
Hmm, ich habe da noch dies gefunden:

http://iderror.com/errors/mysql/mysql-s ... ead_error/

max_allowed_packet habe ich jetzt mal vom 16M auf 32M erhöht.

Der Punkt b scheidet aus, die Tabellen sind alle o.k.

Bleibt noch Punkt a:
Threads, die nicht geschlossen sind können diesen Fehler verursachen. Analysieren Sie den Code und stellen Sie sicher, dass alle Threads ordnungsgemäß vor dem erneuten Öffnen geschlossen sind.
Das werde ich wohl mal checken müssen.

Benutzeravatar
Dungeonwatcher
User
User
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Re: MySQL: Fehler beim Lesen eines Kommunikationspakets

Beitrag von Dungeonwatcher » Mi 26.Jan, 2011 10:59

Moin Meister! :cool:

Ich habe jetzt mal den Error Report für SQL Abfragen in der PHP.INI aktiviert.:
mysql.trace_mode: Falls mysql.trace_mode aktiviert ist, werden Warnungen für Tabellen/Index Scans, nicht freigegebene Ergebnismengen und SQL-Fehler angezeigt.
Nun gibt es bei jedem Seitenaufruf folgenden Eintrag in die error.log:

Code: Alles auswählen

PHP Warning:  Unknown: 3 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0
Wenn ich das jetzt richtig verstehe, werden bei 3 SQL Abfragen die Ergebnisse nicht aus dem Speicher gelöscht und letztere läuft dann so nach und nach voll.
Mit der Angabe "Unknown on line 0" kommt man natürlich nicht groß weiter. ^6
Wie bekomme ich heraus welche SQL Abfrage hiervon betroffen ist?

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29108
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: MySQL: Fehler beim Lesen eines Kommunikationspakets

Beitrag von oxpus » Mi 26.Jan, 2011 17:28

Gute Frage.
Dazu müsste man das Script untersuchen, welches den Fehler verursacht und schauen, ob nach jedem "abgeschlossenen" SELECT auch ein $db->sql_freeresult(...); folgt.
Das gilt dann auch für alle eingebundenen Dateien, wie z. B. die includes/functions.php, wo u. a. Forumkopf- und fuß enthalten sind.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Antworten