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

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

    对于MySQL> = 5.1.12的用户,可以在运行时全局控制这个选项:

    1. 执行SET GLOBAL log_output = 'TABLE';
    2. 执行SET GLOBAL general_log = 'ON';
    3. 看看表mysql.general_log

    如果您喜欢输出到文件而不是表格:

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

    我更喜欢这种方法来编辑.cnf文件,因为:

    1. 你不编辑my.cnf文件,并可能永久开启日志记录
    2. 你不是在寻找查询日志的文件系统周围钓鱼,或者更糟糕的是,由于需要完美的目的地而分心。 /var/log /var/data/log /opt /home/mysql_savior/var
    3. 重新启动服务器会将您留在您开始的位置(日志默认仍处于关闭状态)
    4. 您不必重新启动服务器并中断当前的连接。

    有关更多信息,请参阅MySQL 5.1参考手册 – 服务器系统变量 – general_log

    您可以为这种诊断启用一般查询日志 。 一般来说,您不会在生产服务器上记录所有的SELECT查询,但这是一个性能杀手。

    编辑你的MySQL配置,例如/etc/mysql/my.cnf – 寻找或者添加一行这样的行

     [mysqld] log = /var/log/mysql/mysql.log 

    重新启动mysql来获取更改,现在你可以

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

    嘿presto,你可以看他们进来的查询。

    你可以做流动的事情来监视mysql查询日志。

    打开mysql配置文件my.cnf

     sudo nano /etc/mysql/my.cnf 

    [mysqld]标题下搜索以下行并取消注释这些行以启用日志

     general_log_file = /var/log/mysql/mysql.log general_log = 1 

    重新启动你的mysql服务器以反映更改

     sudo service mysql start 

    使用以下命令在终端监视mysql服务器日志

     tail -f /var/log/mysql/mysql.log 
     SELECT * FROM mysql.general_log WHERE command_type ='Query' LIMIT total; 

    也许你可以通过查看查询日志来发现 。

    1)如果启用了一般mysql日志记录,那么我们可以根据我们在配置中提到的内容来检查日志文件或表中的查询。 使用以下命令检查启用了什么

     mysql> show variables like 'general_log%'; mysql> show variables like 'log_output%'; 

    如果我们需要在表中查询历史记录

     Execute SET GLOBAL log_output = 'TABLE'; Execute SET GLOBAL general_log = 'ON'; 

    看看表mysql.general_log

    如果你喜欢输出到一个文件:

     SET GLOBAL log_output = "FILE"; which is set by default. SET GLOBAL general_log_file = "/path/to/your/logfile.log"; SET GLOBAL general_log = 'ON'; 

    2)我们也可以检查.mysql_history文件中的查询cat〜/ .mysql_history

    如果启用mysql binlog ,可以通过在linux控制台中执行以下命令,通过浏览到mysql binlog目录来检查用户运行的命令

     mysqlbinlog binlog.000001 > /tmp/statements.sql 

    启用

     [mysqld] log = /var/log/mysql/mysql.log 

    或者一般日志会影响mysql的性能

    你可以看看下面的Linux

     cd /root ls -al 

    vi .mysql_history它可能有帮助

    如果你不想改变你的MySQL配置,你可以使用SQL Profiler,比如“Neor Profile SQL” http://www.profilesql.com

      Interesting Posts