Ankündigung

Einklappen
Keine Ankündigung bisher.

Mysql Queries loggen

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mysql Queries loggen

    Hallo,

    ich wollte gerne in einer Personendatenbank mit PHP ein paar E-Mail Anhänge importieren. Leider schreibt das Programm beim Anlegen von den E-Mail Anhängen in ziemlich viele Tabellen in der Datenbank. Er schreibt da Logs, Relationen und eine Haufen id's, etc.
    Gibt's da irgendeinen Trick (wie zum Beispiel ein Tool) was solche komplizierten MySQL Schreibvorgänge schnell verständlich aufschlüsseln kann. Bis ich in der mir vorliegenden Datenbank sonst durchblicke ist schon wieder Weihnachten.

    Grüße Bavra


  • #2
    Start mysql with the --log option:
    mysqld --log=log_file_name
    You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

    Kommentar


    • #3
      MOD: Verschoben von PHP-Einsteiger
      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Einige Anmerkungen zu Erfahrungen und Problemen beim Loggen von MySQL-Anweisungen.
        Zum Loggen von MySQL-Anweisungen nutze ich eine kleine Klasse, welche dynamisch mit start() und stop() das Loggen steuern kann. Hinter diesen Methoden verbirgt sich nicht mehr als die Umsetzung der SQL-Befehle
        Code:
        "SET GLOBAL general_log = 1"
        für den Start und
        Code:
        "SET GLOBAL general_log = 0"
        für ein Stop. Dazu kommen Methoden, welche mir die letzten X Logeinträge bzw. die letzte SQL-Query liefern. Intern wird dazu
        Code:
        "SHOW variables LIKE 'general_log_file'"
        ausgewertet um den Logfilenamen zu erhalten. Alternativ kann ein eigener Logfile gesetzt werden. Das geht per
        Code:
        "SET GLOBAL general_log_file = 'mylogfile.log'"
        'mylogfile.log' steht symbolisch für einen Eintrag mit einen kompletten absoluten Pfad zur Logdatei.
        In der Entwicklungsumgebung funktioniert das ohne Probleme, anders auf einigen Host-Systemen. Dort stehen für die obigen SET GLOBAL oft nicht die notwendigen Rechte zur Verfügung
        und dadurch ist die Klasse dort nicht nutzbar.
        Leider habe ich für diese Systeme noch keine Möglichkeit gefunden, um z.B. im Zusammenhang mit den Prepared Statements Einblick zu erhalten was wirklich in der Datenbank ausgeführt wird.
        PHP-Klassen auf github

        Kommentar

        Lädt...
        X