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?