einmannbetrieb
Goto Top

MySQL Verbindungs-Protokollierungsfunktion

Hallo,

ich habe zwei Datenbanken offline (MS Access) und Online (MySQL). Diese gleiche ich 1x am Tag ab. Die Verbindung soll nun Protokolliert werden.
Ich frage mich also, ob es eine Verbindungs-Protokollfunktion bei MySQL gibt und wie ich die aktivieren kann.

Hoffe ich habe alle wichtigen Infos geliefert, immer gerne Nachfragen.

Content-Key: 238191

Url: https://administrator.de/contentid/238191

Printed on: April 24, 2024 at 22:04 o'clock

Member: stefaan
stefaan May 15, 2014 at 12:33:35 (UTC)
Goto Top
Servus,

MySQL kann alle Queries loggen, Stichwort "general query log", ist aber für die Performance nicht förderlich. Da siehst du alle Abfrage, die ausgeführt wurden.
Wie gleichst du die beiden DBs ab? Dump überspielen?
Eigenes Update-Script?

Grüße, Stefan
Member: EinMannBetrieb
EinMannBetrieb May 15, 2014 at 12:59:06 (UTC)
Goto Top
Hallo Stefan,

danke für deine Antwort, ich hatte schon Befürchtung, dass sich keiner meldet.

Ich gehe erstmal auf deine Frage ein.
Ich habe den MySQL-Connector installiert und erstelle damit kurzzeitig eine Verknüpfung mit den Tabellen die ich Abgleichen will.
Einige Tabellen werden komplett überspielt, bei anderen nur neue Einträge.

Meine Frage zum "general query log":

1. Benötige ich zum aktivieren einen Rootzugriff?
2. Werden auch das Datum/Uhrzeiten geloggt?

@ Alle: 3. Gibt es performance günstigere Alternativen, also welche die tatsächlich nur die Verbindung protokollieren?

Grüße Sebastian
Member: stefaan
Solution stefaan May 15, 2014, updated at May 19, 2014 at 11:36:40 (UTC)
Goto Top
Servus!

Einige Tabellen werden komplett überspielt, bei anderen nur neue Einträge.
D.h. du hast irgendein Programm/Script, das dir das Update macht?
Kannst du damit nicht prüfen, ob das Update erfolgreich war (ich gehe davon aus, dass es dir darum geht)?

1. Benötige ich zum aktivieren einen Rootzugriff?
2. Werden auch das Datum/Uhrzeiten geloggt?
Hier ist gut zusammengefasst, wie das Logging funktioniert und aussieht.
Sehe gerade, dass es seit MySQL 5.1 auch direkt mit SQL-Statements geht (als MySQL-root), also kein Linux-root notwendig.
Edit: Link vergessen:
http://www.pontikis.net/blog/how-and-when-to-enable-mysql-logs

@ Alle: 3. Gibt es performance günstigere Alternativen, also welche die tatsächlich nur die Verbindung protokollieren?
Was willst du genau wissen? Dass es die Verbindung gibt (sprich eine netstat-Ausgabe, dass es eine TCP-Verbindung von Client auf Server gibt)? Dass Queries geschickt wurden?

Grüße, Stefan
Member: EinMannBetrieb
EinMannBetrieb May 15, 2014 updated at 18:24:04 (UTC)
Goto Top
Hallo Stefan,

nochmal 1000Dank für deine Antworten. Das hilft mir wirklich weiter!


Zitat von @stefaan:
D.h. du hast irgendein Programm/Script, das dir das Update macht?
Kannst du damit nicht prüfen, ob das Update erfolgreich war (ich gehe davon aus, dass es dir darum geht)?

Nein, das ist es nicht was mich interessiert. Sondern: Ich arbeite mit sensiblen personenbezogenen Daten und muss daher nach BDSG "überprüft und festgestellt werden [können], an welche[r] Stelle[n] eine Übermittlung personenbezogener Daten durch Einrichtungen zur Datenübertragung vorgesehen ist (Weitergabekontrolle)". Auf gut deutsch: Ich muss protokollieren wenn Daten von Datenbank A nach Datenbank B versendet werden, am besten noch der Zeitpunkt.

Zitat von @stefaan:
Hier ist gut zusammengefasst, wie das Logging funktioniert und aussieht.
Sehe gerade, dass es seit MySQL 5.1 auch direkt mit SQL-Statements geht (als MySQL-root), also kein Linux-root notwendig.
Edit: Link vergessen:
http://www.pontikis.net/blog/how-and-when-to-enable-mysql-logs

Danke der Link sieht für mich schonmal sehr richtig aus.

Zitat von @stefaan:
Was willst du genau wissen? Dass es die Verbindung gibt (sprich eine netstat-Ausgabe, dass es eine TCP-Verbindung von Client auf
Server gibt)? Dass Queries geschickt wurden?
Siehe ersten Punkt oben.


Ich werde am besten mal schauen wie stark es mein System in Mitleidenschaft zieht. Auf jedenfall weiß ich nun, dass es eine Möglichkeit gibt die Verbindung zu protokollieren.

Grüße Sebastian
Member: EinMannBetrieb
EinMannBetrieb May 16, 2014 updated at 21:22:36 (UTC)
Goto Top
Hallo kannst du (oder jemand anderes) folgendes ein wenig genauer ausführen?

Zitat von @stefaan:
Sehe gerade, dass es seit MySQL 5.1 auch direkt mit SQL-Statements geht (als MySQL-root), also kein Linux-root notwendig.



Das Problem ist für mich, dass ich keinen Rootzugriff habe (managed Server von Strato). Ich komme aber in den MySQL-Monitor. Die my.cnf ist aber rootgeschützt.
Wie schaffe ich es aus dem MySQL-Monitor "direkt mit SQL-Statements" die general-logs zu aktivieren? Die Befehle des Links scheinen da nicht weiter zu helfen, da diese sich nicht auf den MySQL-Monitor beziehen.

Grüße Sebastian
Member: stefaan
Solution stefaan May 17, 2014, updated at May 19, 2014 at 11:36:33 (UTC)
Goto Top
Servus,

hast du die MySQL-root-Zugangsdaten?
Dann einfach im MySQL-Verwaltungstool die Abfrage durchführen.
Oder auf der Linux-Konsole (als normaler User) mit "mysql -u root -p" einloggen und die Abfrage abschicken.

Grüße, Stefan
Member: EinMannBetrieb
EinMannBetrieb May 19, 2014 at 11:36:21 (UTC)
Goto Top
Hallo Stefan,
hast du die MySQL-root-Zugangsdaten?

Scheinbar nicht.

Da bleibt mir wohl nur ein Serverwechsel. Bei Hetzner kann man auch beim managed Server alle MySQL Konfiguartionen einstellen (lassen).

Danke Sebastian