Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to show the last queries executed on MySQL?

Tags:

logging

mysql

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

like image 627
FerranB Avatar asked Mar 16 '09 12:03

FerranB


People also ask

How do I find the last query?

In CodeIgniter there is a helper function $this->db->last_query(); . This will return the string of the last query.

How do I find the query history in SQL Workbench?

Show activity on this post. From the bottom panel, change "Action Output" to "History" and then choose the appropriate date. Alternatively, the SQL statement history is stored in text files under two locations: sql_history/yyyy-mm-dd e.g., sql_history/2015-04-01: Full Workbench SQL history for all MySQL connections.


1 Answers

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

  1. Execute SET GLOBAL log_output = 'TABLE';
  2. Execute SET GLOBAL general_log = 'ON';
  3. Take a look at the table mysql.general_log

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

  1. SET GLOBAL log_output = "FILE"; the default.
  2. SET GLOBAL general_log_file = "/path/to/your/logfile.log";
  3. SET GLOBAL general_log = 'ON';

I prefer this method to editing .cnf files 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. You don't have to restart the server and interrupt any current connections to it.
  4. 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

like image 87
FlipMcF Avatar answered Sep 28 '22 01:09

FlipMcF