Entwickler-Ecke

Programmiersprachen (Server) - Query bringt MySQL Server zum Absturz


pigfacejoe - So 08.01.12 02:21
Titel: Query bringt MySQL Server zum Absturz
Hallo zusammen,
ich bin seit ein paar Tagen am verzweifeln, der Grund: ich habe eine eigentlich ganz einfache Abfrage, welche ich an einen MySQL Server schicke...dieser verabschiedet sich dannach aber meistens (nicht immer..) mit der Fehlermeldung :Lost connection to MySQL server during query.
Meine Abfrage lautet wie folgt:


SQL-Anweisung
1:
$abfrage = "SELECT breitengrad,laengengrad,status,uhrzeit_messung,datum,datum_ts,uhrzeit_real,gprmc,geschwindigkeit FROM $fahrzeug WHERE status='A' AND datum_ts>='$datum_b' AND datum_ts<='$datum_e' AND uhrzeit_real>='$anfang' AND uhrzeit_real<='$ende' ORDER BY datum_ts,uhrzeit_messung ASC"                    


Die Variablen datum_b , datum_e enthalten Timestamps und die Variablen $anfang und $ende enthalten Werte im Format '0000' bis '2359'

Ich versteh einfach nicht, wieso sich die Datenbank da komplett verabschiedet(der Dienst muss auf dem Windows-Server jedesmal neu gestartet werden). Habt Ihr da vielleicht einen guten Rat/ Tipp?
Die Verbindung zum server steht auf jeden Fall, alle anderen Abfragen funktionieren ohne Probleme, nur diese hier löst den Fehler aus...und auch nur manchmal (hab keine Regelmäßigkeit erkannt)

PHP Version: 5.2.13
MySQL Version: 5.0.51

Vielen Dank & Gute Nacht,
Max


Moderiert von user profile iconTh69: Topic aus Algorithmen, Optimierung und Assembler verschoben am So 08.01.2012 um 16:33
Moderiert von user profile iconChristian S.: Topic aus Delphi4PHP-Technologien verschoben am So 15.07.2012 um 13:02


jaenicke - So 08.01.12 08:56

Baue die Abfrage doch noch einmal neu schrittweise auf bis es passiert. Der zuletzt wieder hinzugefügte Teil war es dann vermutlich.


pigfacejoe - So 08.01.12 12:10

Danke für deine Antwort!
Wenn ich das mache, funktioniert es, bis ich die Einschränkung AND datum_ts>='$datum_b' mache, ab hier tritt das Problem auf.
Ich habe mir mal die Variable $abfrage ausgegeben, die sieht dann so aus:
SELECT breitengrad,laengengrad,status,uhrzeit_messung,datum,datum_ts,uhrzeit_real,gprmc,geschwindigkeit FROM fahrzeug21 WHERE status='A' AND datum_ts>='1325372401' ORDER BY datum_ts,uhrzeit_messung ASC

SQL-Anweisung
1:
                    


Also dieser Code bringt die MySQL Datenbank zum Abstürzen...aber wie kann das denn sein? Ich seh da keinen Syntaxfehler und selbst wenn es keine passenden Daten zu dem Request geben sollte, (gibt es aber!) dann sollte doch die Datenbank einfach ein leeres Resultat liefern und nicht abschmieren? An der Menge der Daten kann es auch nicht liegen, da die Abfrage ohne der datum_ts Einschränkung funktioniert, obwohl dann weitaus mehr Daten verarbeitet werden.
Ich bin echt am verzweifeln, weil ich wirklich keine Idee mehr habe...


Th69 - So 08.01.12 12:24

Hallo max,

vllt. solltest du einfach mal eine neuere MySQL-Version ausprobieren? Die aktuelle scheint laut Versions History [http://www.snapfiles.com/apphistory/mysql_history.html] 5.5.19 zu sein: http://www.mysql.de/downloads/mysql


pigfacejoe - So 08.01.12 12:35

Hm, ja vielleicht sollte ich das mal machen.
Ich meld mich dannach mal wieder und berichte obs wirklich an der Version gelegen hat.

Vielen Dank für eure Hilfe bis jetzt! ;)

Gruß
Max


Martok - So 08.01.12 15:21

datum_ts klingt, als ob das ein TIMESTAMP (also eine Zahl) ist... warum muss man das mit einem String vergleichen? Kann mir vorstellen, dass das in der alten Version niemand gemerkt hat dass das nicht geht ;)


pigfacejoe - Mo 09.01.12 03:07

Also: Hab den MySQL Server geupgradet und der Fehler kommt nicht mehr...zwar traue ich der Sache noch nicht so ganz, aber mal schaun :)

Vielen Dank für eure Hilfe!
Guuute Nacht