tags:

views:

4925

answers:

3

There are any query/way to show the last queries executed on ALL the server?

+2  A: 

Maybe you could find that out by looking at the query log.

cherouvim
+4  A: 

You can enable a general query log for that sort of diagnostic. Generally you don't log all SELECT queries on a production server though, it's a performance killer.

Edit your MySQL config, e.g. /etc/mysql/my.cnf - look for, or add, a line like this

log = /var/log/mysql/mysql.log

Restart mysql to pick up that change, now you can

tail -f /var/log/mysql/mysql.log

Hey presto, you can watch the queries as they come in.

Paul Dixon
+13  A: 

Additionally, for those blessed with MySQL >= 5.1.12:

1) execute "SET GLOBAL general_log = 'ON';"
2) execute "SET GLOBAL log_output = 'TABLE';"
3) take a look at the table mysql.general_log

I prefer this method because:
  1) you're not editing the my.cnf file and potentially permanently turning on logging
  2) you're not fishing around the filesystem looking for the query log - or even worse, distracted by the need for the perfect destination. /var/log /var/data/log /opt /home/mysql_savior/var
  3) restarting the server leaves you where you started (log is off)

FlipMcF
(no one else commented, so I'll troll myself) problem is you can't `tail -f` a table. So also look at SET GLOBAL log_output = "FILE" and SET GLOBAL general_log_file = "/path/to/ur/logfile.log" tail -f and grep are wonderful tools that SQL just can't beat
FlipMcF
http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_general_log
FlipMcF