WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Logga alla frågor mot MySQL - hur då? (https://www.wn.se/forum/showthread.php?t=1040041)

Osiris 2010-01-16 18:25

Logga alla frågor mot MySQL - hur då?
 
Utan att behöva skriva en egen loggning av alla frågor som min webbapplikation gör mot MySQL är detta ändå något vill ha tag på.

Finns det något program/tillägg för MySQL på Windows-plattform som spårar samtliga SQL-frågor som servern kör?

Tror SQL Server har något motsvarande med namnet Profiler.

Tips?

tartareandesire 2010-01-16 18:48

Det finns väl redan inbyggt i MySQL (General Query Log) eller fungerar inte det på Windows?

Osiris 2010-01-16 19:38

Jo den har jag hittat, problemet är bara att den inte loggar vad webbapplikationen frågar efter utan bara det som db-klienten kollar.

Mer vägledning?

tartareandesire 2010-01-16 19:53

Rent generellt så är det nog en väldigt dålig idé att logga precis alla anrop annat än i utvecklingsskedet men det kanske är det du är ute efter?

Osiris 2010-01-16 20:32

Japp det är bara på min utvecklingsmiljö.
Både för att se antalet frågor per sidvisning och också få reda på vilka saker som är med i WHERE-delen av satsen (som jag förstått är något att sätta upp index för).

Björklund 2010-01-16 20:53

http://dev.mysql.com/doc/refman/5.0/en/query-log.html

Osiris 2010-01-16 22:58

Citat:

Ursprungligen postat av Björklund (Inlägg 20339353)

Det var bland de fylligaste svaren jag sett på länge. Jag kan också googla :|

Clarence 2010-01-17 12:28

Citat:

Ursprungligen postat av Osiris (Inlägg 20339340)
Jo den har jag hittat, problemet är bara att den inte loggar vad webbapplikationen frågar efter utan bara det som db-klienten kollar.

Mer vägledning?

Menar du att din webb-applikation inte är en klient vid anslutning till MySQL-servern? Loggningen som nämnts 2 gånger loggar alla frågor oavsett om de kommer från din webbapplikation eller en kommandoprompt.

Dock finns det andra sätt att logga saker som oftare är relevant. T ex sätta @@profiling till 1 för att se vilka frågar som tar tid i vilka stadier. Eller för den delen slow query log (se manualen för tips om tidsbegränsningen). Det kan även vara intressant att använda hjälpmedlena i maatkit för att förenkla informationsframställningen från ovanstående.

iXam 2010-01-17 14:14

Ett annat sätt är att gå via en proxy.
http://forge.mysql.com/wiki/MySQL_Proxy

Björklund 2010-01-17 18:21

Citat:

Ursprungligen postat av Osiris (Inlägg 20339383)
Det var bland de fylligaste svaren jag sett på länge. Jag kan också googla :|

Men varför inte använda dina google-svar då?

På länken står det:

"To enable the general query log, start mysqld with the --log[=file_name] or -l [file_name] option. "

Du kan också lägga till

log = /min/loggfil.log

i din my.cnf

Hoppas det ger dig lite ljus i mörkret.


Alla tider är GMT +2. Klockan är nu 14:43.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson