How to show the last queries executed on MySQL?

是否有任何查询/方式显示在所有服务器上执行的最后查询?


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
  • restarting the server leaves you where you started (log is by default still off)
  • You don't have to restart the server and interrupt any current connections to it.
  • For more information, see MySQL 5.1 Reference Manual - Server System Variables - general_log


    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, eg /etc/mysql/my.cnf - look for, or add, a line like this

    [mysqld]
    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.


    链接地址: http://www.djcxy.com/p/95046.html

    上一篇: MySQL:3表连接查询?

    下一篇: 如何显示在MySQL上执行的最后一个查询?