本帖最后由 totola147 于 2013-12-10 19:37:06 编辑

解决方案 »

  1.   

     The minimum and default values of long_query_time are 0 and 10, respectively. The value can be specified to a resolution of microseconds
    最小是微妙
      

  2.   

    原来如此,恩 我试试我其实有试过  使用log , log是可以实时的记录mysql的行为 但是太多我不想要的内容了 看起来太不方便了  慢查询能好一点点 这就是开启mysqld日志:
    31210 20:55:31     1 Query show global status
        1 Query show global variables
        3 Query show global status
        3 Query show global variables
        2 Query show global status
        2 Query show global variables
    131210 20:55:32     1 Query show global status
        1 Query show global variables
        3 Query show global status
        3 Query show global variables
        2 Query show global status
        2 Query show global variables
    131210 20:55:33     1 Query show global status
        1 Query show global variables
        2 Query show global status
        2 Query show global variables
        3 Query show global status
        3 Query show global variables
    131210 20:55:34     4 Query SELECT * FROM sss
    LIMIT 0, 1000
        4 Prepare SELECT TABLE_CATALOG AS TABLE_CAT, TABLE_SCHEMA AS TABLE_SCHEM, TABLE_NAME, COLUMN_NAME, SEQ_IN_INDEX AS KEY_SEQ, INDEX_NAME AS PK_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA LIKE ? AND TABLE_NAME LIKE ? AND INDEX_NAME='PRIMARY' ORDER BY TABLE_SCHEMA, TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX
        4 Execute SELECT TABLE_CATALOG AS TABLE_CAT, TABLE_SCHEMA AS TABLE_SCHEM, TABLE_NAME, COLUMN_NAME, SEQ_IN_INDEX AS KEY_SEQ, INDEX_NAME AS PK_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA LIKE 'XunKangYuan' AND TABLE_NAME LIKE 'UserShare' AND INDEX_NAME='PRIMARY' ORDER BY TABLE_SCHEMA, TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX
        4 Close stmt
        4 Prepare SELECT TABLE_CATALOG AS TABLE_CAT, TABLE_SCHEMA AS TABLE_SCHEM, TABLE_NAME, COLUMN_NAME, DATA_TYPE,CASE WHEN LOCATE('unsigned', COLUMN_TYPE) != 0 AND LOCATE('unsigned', DATA_TYPE) = 0 THEN   CASE    WHEN LOCATE('zerofill', COLUMN_TYPE) != 0 AND LOCATE('zerofill', DATA_TYPE) = 0 THEN CONCAT(UCASE(DATA_TYPE), ' UNSIGNED ZEROFILL')    ELSE CONCAT(UCASE(DATA_TYPE), ' UNSIGNED')  END     ELSE UCASE(DATA_TYPE)END AS TYPE_NAME,CASE WHEN LCASE(DATA_TYPE)='year' THEN SUBSTRING(COLUMN_TYPE, 6, 1) -- 'year('=5
    WHEN LCASE(DATA_TYPE)='date' THEN 10 WHEN LCASE(DATA_TYPE)='time' THEN 8 WHEN LCASE(DATA_TYPE)='datetime' THEN 19 WHEN LCASE(DATA_TYPE)='timestamp' THEN 19 WHEN CHARACTER_MAXIMUM_LENGTH IS NULL THEN NUMERIC_PRECISION ELSE CHARACTER_MAXIMUM_LENGTH END AS COLUMN_SIZE, '' AS BUFFER_LENGTH,NUMERIC_SCALE AS DECIMAL_DIGITS,10 AS NUM_PREC_RADIX,CASE WHEN IS_NULLABLE='NO' THEN 0 ELSE CASE WHEN IS_NULLABLE='YES' THEN 1 ELSE 2 END END AS NULLABLE,COLUMN_COMMENT AS REMARKS,COLUMN_DEFAULT AS COLUMN_DEF,0 AS SQL_DATA_TYPE,0 AS SQL_DATETIME_SUB,CHARACTER_OCTET_LENGTH,ORDINAL_POSITION,IS_NULLABLE,NULL AS SCOPE_CATALOG,NULL AS SCOPE_SCHEMA,NULL AS SCOPE_TABLE,NULL AS SOURCE_DATA_TYPE,IF (EXTRA LIKE '%auto_increment%','YES','NO') AS IS_AUTOINCREMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA LIKE ? AND TABLE_NAME LIKE ? AND COLUMN_NAME LIKE ? ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION
      

  3.   


    您确定可以实时监控  执行的查询语句   找资料时没有看到有这个特性
    Nagios仅仅是个框架而已,还需要很多插件。
    看你监控到什么内容和需要怎样的监控,SQL语句可以用log-slow-queries,最好用旁路抓包,tcpdump就能搞定。
    展示的话cacti更漂亮,但这些个都不见得适合你的业务。
      

  4.   

    nagios不仅仅能够监控mysql服务、还可以监控硬件资源使用情况。
    可以通过短信或邮件方式监控,但nagios要借助于插件完成。