AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MySQL Fehler 2006: Server has gone away

MySQL Fehler 2006: Server has gone away

Ein Thema von Captnemo · begonnen am 26. Feb 2009 · letzter Beitrag vom 27. Feb 2009
Antwort Antwort
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#1

MySQL Fehler 2006: Server has gone away

  Alt 26. Feb 2009, 21:39
Datenbank: MySQL • Version: 5.0 • Zugriff über: Zeos
Hallo Leute,

ich habe das Problem, dass zwei Programme von mir welche zu einem Projekt gehören, nach eine gewissen Laufzeit den Fehler: "MySQL Error: Server has gone away" melden. Die Laufzeit ist unterschiedlich.

Wobei der Fehler sicherlich nicht unbedingt an meinen Programmen liegt.
Erst einmal das Szenario:

Eine XP-Workstation (dient in diesem Fall zur Zeit als Server) dient als MySQL-Server. Diese Workstation steht in der Zentrale und ist per Kabel-Deutschland ans Internet angeschlossen. Per Dyndns sollen die Fillialen auf diesen zugreifen.
Die Fillialen sind teilweise auch über Kabel-Deutschland, aber auch über T-Com-Anschlüsse angeschlossen. Es sind unterschiedliche Router im Einsatz. D-Link, Linksys und Lancom. In der Zentrale ist der D-Link.
Außer diesem Problem sind weder in der Zentrale als auch in den Fillialen keine anderen Probleme mit dem Internet bekannt.
Läuft das Client-Programm innerhalb des LAN der Zentrale treten keine Probleme auf.

In meinem Programm wird die Connection bei beginn aufgebaut und währende der ganzen Laufzeit aufrecht gehalten. Mittels Timer werden zwischendurch immer mal wieder einzelne Abfragen an den Server gestartet. Aber keine Großen, die Übertragungsmenge liegt eher im kB-Bereich und auch die SQL-Abfrage-Strings sind nicht lang.
Der Server ist nicht ausgelastet.

Kennt einer dieses Problem? Oder hat einer eine Idee, wie ich das ändern kann? Ich weiß nicht, ob eine Unterbrechnung innerhalb des Internets statfindet, oder ob der SQL-Server die Verbindung getrennt hat.
Eine Zwangstrennung durch den Internetprovider schließe ich aus. Findet zwar mit Sicherheit statt, aber nicht in der Häufigkeit, wie mein Problem.

Wäre für jeden Hinweis dankbar.

mfg

PS: Die DB auf ein MySQL-Server eines Internetanbieters zu verlegen, scheidet leider wegen des nicht unterstützten direkten Zugriffs auf diesen aus.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: MySQL Fehler 2006: Server has gone away

  Alt 26. Feb 2009, 22:15
Der Fehler kann unterschiedliche Gründe haben.

http://dev.mysql.com/doc/refman/5.1/de/gone-away.html
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
16.938 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: MySQL Fehler 2006: Server has gone away

  Alt 26. Feb 2009, 22:15
Kenn das nur wenn die Netzwerk-"Packet"-Größe über die eingestellt MySQL-Grenze liegt. Dies ist Standardmäßig bei 1MB. Sprich: Ein INSERT/UPDATE darf als gesamtpacketgröße (Nutzdaten, SQL-"Overhead", TCP-Overhead) nicht 1 MB überschreiten.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#4

Re: MySQL Fehler 2006: Server has gone away

  Alt 26. Feb 2009, 23:07
@Greyer:

Also meine Abfragen überschreiten in gar keinem Fall auch nur annähernd 1MB. Wenn sie mal 150 KB groß sind, dann ist das in meinem Fall schon viel.

@nuclearping:

Hab mir das Dokument mal durchgelesen. Leider kann ich so ziemlich fast alles davon ausschließen. Aber ich hab gelesen, dass ein SQLPing einen Möglichen Timeout aufhält, bzw. einen reconnect anstößt. Also hab ich das einfach mal in meinen OnTimer-Event eingebaut. Mal sehen was das so bringt.

Ist aber für mich nur bedingt befiedigend. Denn wenn ich nicht weiß, wo genau der Fehler herkommt, kann er ja immer wieder auftreten. Ich beseitige Fehler immer lieber nachhaltig.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
16.938 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: MySQL Fehler 2006: Server has gone away

  Alt 27. Feb 2009, 08:34
Zitat von Captnemo:
Also meine Abfragen überschreiten in gar keinem Fall auch nur annähernd 1MB. Wenn sie mal 150 KB groß sind, dann ist das in meinem Fall schon viel.
Check mal die Variable max_allowed_packet (Show Variables)

Zitat von Captnemo:
Ist aber für mich nur bedingt befiedigend. Denn wenn ich nicht weiß, wo genau der Fehler herkommt, kann er ja immer wieder auftreten. Ich beseitige Fehler immer lieber nachhaltig.
Gute Einstellung
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#6

Re: MySQL Fehler 2006: Server has gone away

  Alt 27. Feb 2009, 10:03
Zitat von Bernhard Geyer:
Check mal die Variable max_allowed_packet (Show Variables)
Max_allowed_packet ist 1048576.

Meine Abfragen liegen in der Größen ordnung von 10 bis 200 Zeilen mit bis zu maximal 10 Feldern. Alles nur Strings, Integer und DateTime. Ich denke nicht, dass ich diese größe erreichen würde.

Selbst wenn ich in jedem Feld 100 Zeichen hätte, würde ich auf maximal 200000 Zeichen kommen. Mit ein bischen Overhead sind es dann vielleicht 250 Kb.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 1. Dez 2003
Ort: Luterbach (CH)
521 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: MySQL Fehler 2006: Server has gone away

  Alt 27. Feb 2009, 17:34
Die Problematik hatte ich auch, bei mir reicht es, wenn ich mittels Timer die Verbindung regelmässig erneuere (sinngemäss):

Delphi-Quellcode:
procedure TFMD.JvTimer1Timer(Sender: TObject);
var
  Status : Boolean;

begin
  Status := FMD.Verbindung_erneuern;
end;

function TFMD.Verbindung_erneuern : Boolean;
begin
  IF ZCon.Ping THEN Result := True
  ELSE
    Try
      ZCon.Connect;
    Except
      Result := True;
    end;
end;
Roland
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf