How to show the last queries executed on MySQL?

logging, mysql

Solution

For those blessed with MySQL >= 5.1.12, you can control this option globally at runtime:

- Execute `SET GLOBAL log_output = 'TABLE';`

- Execute `SET GLOBAL general_log = 'ON';`

- Take a look at the table `mysql.general_log`

If you prefer to output to a file instead of a table:

- `SET GLOBAL log_output = "FILE";` the default.

- `SET GLOBAL general_log_file = "/path/to/your/logfile.log";`

- `SET GLOBAL general_log = 'ON';`

I prefer this method to editing .cnf files because:

- you're not editing the `my.cnf` file and potentially permanently turning on logging

- 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`

- You don't have to restart the server and interrupt any current connections to it.

- restarting the server leaves you where you started (log is by default still off)

For more information, see MySQL 5.1 Reference Manual - Server System Variables - general_log

Problem

Is there any query/way to show the last queries executed on ALL servers?

Original source

Related problems