我可能是用惯了 ms sql 的那个 profiler, 现在想开始监测一下 mysql 客户端的所有发过来的query。 于是网上开始找了一些,
不过简直都太差劲了,不光难用,基本上都不能实时的检测到库户端发过来的语句。 哪位知不知道有好一点的,哎呀,现在都不求好不好用了,谁能分享个能实时监测到客户端发过来的所有 Query 的。

解决方案 »

  1.   

    5.11.2. 通用查询日志
    http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#query-log
      

  2.   

    这个日志中你可以看到所有被提交的SQL语句。5.11.2. 通用查询日志
    如果你想要知道mysqld内部发生了什么,你应该用--log[=file_name]或-l [file_name]选项启动它。如果没有给定file_name的值, 默认名是host_name.log。所有连接和语句被记录到日志文件。当你怀疑在客户端发生了错误并想确切地知道该客户端发送给mysqld的语句时,该日志可能非常有用。
    mysqld按照它接收的顺序记录语句到查询日志。这可能与执行的顺序不同。这与更新日志和二进制日志不同,它们在查询执行后,但是任何一个锁释放之前记录日志。(查询日志还包含所有语句,而二进制日志不包含只查询数据的语句)。 服务器重新启动和日志刷新不会产生新的一般查询日志文件(尽管刷新关闭并重新打开一般查询日志文件)。在Unix中,你可以通过下面的命令重新命名文件并创建一个新文件:shell> mv hostname.log hostname-old.log
    shell> mysqladmin flush-logs
    shell> cp hostname-old.log to-backup-directory
    shell> rm hostname-old.log
    在Windows中,服务器打开日志文件期间你不能重新命名日志文件。你必须先停止服务器然后重新命名日志文件。然后,重启服务器来创建新的日志文件。
      

  3.   

    我的是 win 主机。 默认的windows 服务自动启动,我是不是要重新启动它才能加参数啊?
      

  4.   

    如果要修改my.ini 的中参数,则需要重启。
    如果直接在MYSQL中修改相应系统变量,则不需要。
      

  5.   

    不好意思,我看 my.ini 看了半天,没看到那一句是配置这个的啊。 可能我的my.ini 是经过精简的把不必要的都删除了。
      

  6.   

    在你的my.ini 中的[mysqld]节中加入下面红色部分。[mysqld]# The TCP/IP Port the MySQL Server will listen on
    port=3306...log=
    log-error=
    log-slow-queries=
    log-bin=
      

  7.   

    ok, 我总算看到query的 log 了。 真不容易啊。 谢谢你的帮助!