首页 文章

在OSX上启用my.cnf中的日志记录无法正常工作

提问于
浏览
1

拉出我的头发,似乎无法找到我的问题的答案 . 我在OSX Yosemite上运行MYSQL 5.6.26 . 我只是想尝试记录我的查询 .

我已将my.cnf文件放在/ usr / local / mysql中,并在[mysql]下添加了两行(我实际上必须输入它们而不是仅取消注释现有行):

general_log=1
general_log_file=/usr/local/mysql/mysql.log

在my.cnf上执行ls -l会产生:

-rw-r--r--  1 root  wheel  1002 Nov 10 19:01 my.cnf

这看起来很奇怪 . 为什么_mysql不是所有者?

我首先尝试进行上述更改,并通过“系统偏好设置”停止并重新启动sql server,但这不起作用 .

我已经尝试将my.cnf的所有权更改为_mysql,在目录/ usr / local / mysql中创建mysql.log并使所有者_mysql也无济于事 .

有点疯狂,因为我觉得这不应该那么难 . 如何启用mysql的日志记录?

3 回答

  • 0

    我在尝试设置mySQL 5.7 Community Edition上的日志时遇到了这篇文章 . 此版本附带一个启动守护程序 /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist ,它将替换my.cnf文件以进行新安装 . 您可以在plist文件中添加启动参数以启用日志记录:

    --log-output--general_logslow_query_log ,例如:

    <key>ProgramArguments</key>
        <array>
            <string>/usr/local/mysql/bin/mysqld</string>
            <string>--user=_mysql</string>
            <string>--basedir=/usr/local/mysql</string>
            <string>--datadir=/usr/local/mysql/data</string>
            <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
            <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
            <string>--log-output=FILE</string>
            <string>--general_log=/var/log/mysql/mysql.log</string>
            <string>--log-error=/var/log/mysql/mysql.err.log</string>
        </array>
    

    更多信息可在以下网址找到:

    https://dev.mysql.com/doc/refman/5.7/en/osx-installation-launchd.html https://dev.mysql.com/doc/refman/5.7/en/log-destinations.html

  • 2

    默认情况下,在标准安装的OSX上不使用配置文件 . 如果你想让服务器拿起一个自动将它放入/ etc(即/etc/my.cnf),这真的最终在/private/etc/my.cnf,但这是透明的 .

    另一个选项是在服务器启动时指定选项文件(通过--defaults-file参数):

    Mikes-MacBook-Pro:等Mike $ ps aux | grep mysql Mike 2055 0,0 0,1 3235892 7268 ?? S 2Nov15 1:41.22 /Users/Mike/sandboxes/5.7.5/bin/mysqld --defaults-file = / Users / Mike / sandboxes / msb_5_7_5 / my.sandbox.cnf --basedir = / Users / Mike / sandboxes / 5.7.5 --datadir = / Users / Mike / sandboxes / msb_5_7_5 / data --plugin-dir = / Users / Mike / sandboxes / 5.7.5 / lib / plugin --user = Mike --log-error = / Users /Mike/sandboxes/msb_5_7_5/data/msandbox.err --pid-file = / Users / Mike / sandboxes / msb_5_7_5 / data / mysql_sandbox5705.pid --socket = / var / folders / fv / 13zbdzw17cdczn_rbnt5m_140000gn / T // mysql_sandbox5705 . 袜子 - 口= 5705

  • 0

    在接受了John Elemans的建议之后,我使用了mySQL工作台,打开了一个本地实例,在左侧是一个名为“Instance”的区域,其中包含指向“Server Logs”的链接 . 错误日志显示我在my.cnf中指定的日志文件不存在 . 所以我在/ usr / local / mysql中创建了日志文件mysql.log,并通过WorkBench重新启动了服务器 . 查看错误日志并抛出错误,说mysql无法打开文件 . 已检查的权限和_mysql不是所有者 . 所以我从root到_mysql为日志文件做了一个chown,重新启动了服务器,然后瞧'...它正在工作 . 谢谢大家 .

    不确定如何接受John的答案作为正确答案,所以我只选择这个答案,因为它为其他人回答了问题 .

相关问题