【问题标题】:How to log slow queries in MySQL 5.0.45如何在 MySQL 5.0.45 中记录慢速查询
【发布时间】:2012-09-14 14:05:02
【问题描述】:

我正在尝试在 MySQL v5.0.45(编译操作系统:redhat-linus-gnu)上打开慢查询的日志记录,但我似乎无法让它工作。我尝试添加...

long_query_time = 1

到我的 /etc/my.cnf 文件作为 [mysqld] 部分下的最后一个选项,然后我使用命令重新启动...

sudo /sbin/service mysqld restart --log-slow-queries=/var/log/slowqueries.log

然后我运行了我知道 SELECT 查询大约需要 6-8 秒的程序,但我在任何地方都找不到日志。有什么想法吗?

【问题讨论】:

    标签: mysql logging


    【解决方案1】:

    对于 MySQL 5.0,您要在 my.cnf 中使用的变量是:

    log-slow-queries = /var/log/mylogname.log
    

    您需要手动创建此文件并将所有权和组设置为 mysql。您可以在命令行上执行此操作:

    touch /var/log/mylogname.log
    chown mysql /var/log/mylogname.log
    chgrp mysql /var/log/mylogname.log
    

    您还可以设置您认为“长”的时间长度:

    long_query_time = 2
    

    您可以使用以下命令添加不使用索引执行的查询:

    log-queries-not-using-indexes
    

    但是,这可能会很快填满您的日志。

    我发现有些变量使用下划线而有些使用连字符很奇怪,而且它可能会有所不同,具体取决于您通过 my.cnf 或命令行设置变量的方式。以下是您可以在 MySQL 5.0 中设置的所有系统变量的列表:http://dev.mysql.com/doc/refman/5.0/en/server-options.html

    还有一些奇怪的是:这个文档说 log-slow-queries 是一个布尔值,当我检查我的全局变量(在 mysql 中,输入“显示全局变量;”)时,它显示 this 的值为 ' ON',而不是我设置的文件路径。无论如何,这对我有用,它写了文件。

    【讨论】:

    • 这个答案应该是公认的答案。它不仅涵盖了如何在 mysql 5.0.XX 中完美地设置和配置慢查询,还指出了我多年来注意到但从未见过如此简洁列出的所有奇怪的怪癖。
    【解决方案2】:

    在你的 /etc/my.cnf 添加log_slow_queries = /var/log/mysql/slowqueries.log 然后像往常一样重启mysql,例如sudo service mysqld restart 试试看。

    【讨论】:

    • 嗯...不走运。我仍然无法记录查询。
    • sudo service mysqld restart service:此命令仍然有效,但已弃用。请改用 launchctl(8)。服务:无法识别的命令“重启”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 2011-02-09
    • 1970-01-01
    相关资源
    最近更新 更多