Ergebnisse des MySQL Servers abfangen/loggen
am 20.08.2014 - 13:19 Uhr in
Hi!
Es ist nicht gerade eine Drupal Frage, aber ich bin gestern bei der Modifikation eines meiner Module darüber gestolpert.
Ich habe eine (eigentlich viele) SQL Abfragen im Cron Job.
Aus einem, wie sich erst später herausstellte, Fehler in einer Funktion bekam ich andere Ergebnisse als in der Datenbank waren.
Zuerst hatte ich angenommen es wären alte Daten aus dem Cache.
Um das zu verifizieren wollte ich die Ergebnisse der SQL Abfragen vom Server loggen lassen.
Dies scheint aber nur bei der Konsole (mysql) zu gehen, aber nicht über den Dienst (mysqld).
Zumindest kennt mysqld den Befehl --tee nicht.
Im MySQLAdmin, als auch bei der Konsole (mysql) war die Abfrage und das Ergebnis ok.
Da auch Drupal die Quelle des Fehlers hätte sein können wollte ich mich nicht auf dessen Rückantwort verlassen.
Die Frage ist nun, wie kann ich die Results des MySQL Dienstes (unter meiner Windows Testumgebung) abfangen oder loggen?
- Anmelden oder Registrieren um Kommentare zu schreiben
Tee ist ein Programm für die
am 20.08.2014 - 14:13 Uhr
Tee ist ein Programm für die Shell, um Informationen aus einer Pipe auszuleiten. Was hat der mysqld damit zu schaffen? Der bekommt doch davon gar nichts mit. Wenn Du über die Programmschnittstelle auf mysql zugreifst, geht davon nichts nach standardin, standardout oder standarderr. Also kannst Du dabei tee nicht nutzen.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Kann Dir nur sagen, wie das
am 20.08.2014 - 14:33 Uhr
Kann Dir nur sagen, wie das unter linux/unix geht. Du musst die Konfig so einstellen; dass er die verschiedenen log-level ausgibt. Standardisiert unter windows sind das error-logs. Also durchforste Deine config nach log levels und gib die dort frei.
Falls da viel traffic ist solltest du über log-rotate nachdenken. keine Ahnung ob es das auch unter windows gibt.
wla schrieb Tee ist ein
am 20.08.2014 - 14:45 Uhr
Tee ist ein Programm für die Shell, um Informationen aus einer Pipe auszuleiten. Was hat der mysqld damit zu schaffen? Der bekommt doch davon gar nichts mit. Wenn Du über die Programmschnittstelle auf mysql zugreifst, geht davon nichts nach standardin, standardout oder standarderr. Also kannst Du dabei tee nicht nutzen.
Genau das ist ja das Problem!
Die Query zu loggen ist ja einfach, das Ergebnis jedoch abzufangen ein ganz anderes Thema.
Mich interessiert halt ob jemand unter Windows dafür eine Lösung parat hat.
www.cathexis.de
maen schrieb Kann Dir nur
am 20.08.2014 - 14:54 Uhr
Kann Dir nur sagen, wie das unter linux/unix geht. Du musst die Konfig so einstellen; dass er die verschiedenen log-level ausgibt. Standardisiert unter windows sind das error-logs. Also durchforste Deine config nach log levels und gib die dort frei.
Falls da viel traffic ist solltest du über log-rotate nachdenken. keine Ahnung ob es das auch unter windows gibt.
Bist du dir sicher das du die Ergebnisse der Queries loggst?
Mir geht es ja nur darum zu checken welche Daten von MySQL an Drupal weitergegeben werden.
Unter Linux kann man ja relativ einfach die Pakete sniffen.
Vielleicht sollte ich Wireshark o.ä. bemühen.
www.cathexis.de
eigentlich bin ich mir da
am 20.08.2014 - 15:39 Uhr
eigentlich bin ich mir da nicht sicher, ich sehe da ehrlich gesagt insgesamt keinen Sinn. Du willst wissen, welche Funktion was abfeuert? Da würde ich eine IDE (ich nutze netbeans) nehmen, das entsprechende Modul aufrufen, dann debuggen. Dann würde ich mir in aller Ruhe die Objekte etc. anschauen, die Du dort, bezogen aus der DB, pro Funktion erhältst.
Wenn Du Dir das aus wireshark gibst kannst Du genauso gut einen Regentanz machen. Falls, was ich nicht glaube, tatsächlich irrtümlicherseits Daten falsch übermittelt werden sollen, muss ja eine Funktion kaputt oder falsch sein.
maen schrieb eigentlich bin
am 20.08.2014 - 18:07 Uhr
eigentlich bin ich mir da nicht sicher, ich sehe da ehrlich gesagt insgesamt keinen Sinn. Du willst wissen, welche Funktion was abfeuert? Da würde ich eine IDE (ich nutze netbeans) nehmen, das entsprechende Modul aufrufen, dann debuggen. Dann würde ich mir in aller Ruhe die Objekte etc. anschauen, die Du dort, bezogen aus der DB, pro Funktion erhältst.
Wenn Du Dir das aus wireshark gibst kannst Du genauso gut einen Regentanz machen. Falls, was ich nicht glaube, tatsächlich irrtümlicherseits Daten falsch übermittelt werden sollen, muss ja eine Funktion kaputt oder falsch sein.
Ich benutzte Netbeans und letztendlich habe ich genau das auch getan.
Da ich ja ein Caching Problem vermutet hatte, wollte ich auf die pure Übertragung zugreifen (und sehen ob da der Fehler liegt).
www.cathexis.de
Du bist der Hammer! Ehrlich!
am 20.08.2014 - 19:15 Uhr
Da ich ja ein Caching Problem vermutet hatte, wollte ich auf die pure Übertragung zugreifen (und sehen ob da der Fehler liegt).
Glaubst Du das netbeans das caching umgeht??? Und wenn ja wie??? Ich habe eben von einem absoluten Anfänger gelernt, das es in Fullcalendar mehr Funktionen gibt als ich für möglich gehalten habe. Aber von einem drupal Experten wie Dir lerne ich, dass ich meine Zeit zu schlecht einteile!
maen schrieb Glaubst Du das
am 20.08.2014 - 19:54 Uhr
Glaubst Du das netbeans das caching umgeht??? Und wenn ja wie??? Ich habe eben von einem absoluten Anfänger gelernt, das es in Fullcalendar mehr Funktionen gibt als ich für möglich gehalten habe. Aber von einem drupal Experten wie Dir lerne ich, dass ich meine Zeit zu schlecht einteile!
Ich glaube du verstehst da was falsch. Ich wollte einfach nur den Datenstrom abgreifen, und zwar genau an der Quelle.
Nicht mehr und nicht weniger. Ich hab das Problem ja gelöst und wollte nur wissen ob es Mittel und Wege gibt.
Aber ich bin zumindest froh bei deinem Zeitmanagement Problem geholfen zu haben.
www.cathexis.de