Portál AbcLinuxu, 26. dubna 2024 16:40
Zdravím,
přemýšlím jak udělat logování měněných dat v MySQL databázi do tabulky ve tvaru: uživatel, datum, čas, ...., měněný sloupec, stará, nová hodnota
Zkoušel jsem to přes trigery, což je velmi v poho, ale nemůžu najít jestli si vůbec MySQL server někde ukládá seznam polí které v dotazu mění, popř např prováděný sql příkaz.
Logování do souborů je sice účinné, ale pro mě nepraktické, většinou jsou to tuny dat, kde je 99% balastu.
Nevíte někdo jak na to?
provadeny sql prikazy si mozete logovat zapnutim all queries logu. v konfiguraku staci zadat k nemu cestu:
log=/path/to/all_queries.log
bude potom treba restartnut server. okrem ineho to bude mat za nasledok aj jeho spomalenie.
inak to asi pojde iba cez trigery.
MySQL si uklada dotazy meniace alebo potencionalne meniace data do binary logov. tie ale asi nebudu pre vas to prave :(
Přesně,
o logování všech dotazů do souboru vím, akorát že mě jde pouze o dotazy měnící data a to ještě nad některými tabulkami. V databázi existují tabulky do nichž zapisuje nagios, cacti atd, nad nimiž je dosti rušný provoz a logy z nich nepotřebuji. Pokud by existovala proměnná serveru myql, která by byla přístupná z triggeru a obsahovala např. prováděný sql příkaz (něco jako např. tabulky old a new), byl by problém vyřešen.
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.