在 OSX 上启用登录 my.cnf 无效
Enabling logging in my.cnf on OSX not working
急于求成,似乎找不到我的问题的答案。我是 运行 MYSQL 5.6.26 OSX Yosemite。我只是想启用我的查询记录。
我在 /usr/local/mysql 找到了 my.cnf 文件并添加了两个
[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 服务器,但这不起作用。
我尝试将 my.cnf 的所有权更改为 _mysql,在目录 /usr/local/mysql 中创建 mysql.log 并将所有者 _mysql 也更改为徒劳无功。
有点疯狂,因为我觉得这不应该那么难。如何为 mysql 启用日志记录?
默认情况下,OSX 标准安装不使用配置文件。如果你想让服务器自动拿起一个,把它放到/etc(即/etc/my.cnf),它实际上最终在/private/etc/my.cnf,但那是透明的。
另一个选项是在服务器启动时指定选项文件(通过 --defaults-file 参数):
Mikes-MacBook-Pro:etc 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.sock
--port=5705
在听取了 John Elemans 的建议后,我使用了 mySQL workbench,打开了一个本地实例,在左侧是一个名为 'Instance' 的区域,其中有一个link 到 'Server Logs'。错误日志显示我在 my.cnf 中指定的日志文件不存在。所以我在 /usr/local/mysql 中创建了日志文件 mysql.log 并通过 WorkBench 重新启动了服务器。查看错误日志,抛出一条错误消息,提示 mysql 无法打开文件。检查权限,_mysql 不是所有者。所以我对日志文件进行了从 root 到 _mysql 的 chown,再次重新启动服务器,瞧,它开始工作了。谢谢大家。
不确定如何接受 John 的回答是正确的,所以我只 select 这个回答其他人的问题。
我在 mySQL 5.7 Community Edition 上尝试设置登录时遇到了这个 post。此版本附带一个启动守护程序 /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
,用于替换新安装的 my.cnf 文件。您可以将启动参数添加到 plist 文件以启用日志记录:
--log-output
、--general_log
、slow_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
急于求成,似乎找不到我的问题的答案。我是 运行 MYSQL 5.6.26 OSX Yosemite。我只是想启用我的查询记录。
我在 /usr/local/mysql 找到了 my.cnf 文件并添加了两个 [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 服务器,但这不起作用。
我尝试将 my.cnf 的所有权更改为 _mysql,在目录 /usr/local/mysql 中创建 mysql.log 并将所有者 _mysql 也更改为徒劳无功。
有点疯狂,因为我觉得这不应该那么难。如何为 mysql 启用日志记录?
默认情况下,OSX 标准安装不使用配置文件。如果你想让服务器自动拿起一个,把它放到/etc(即/etc/my.cnf),它实际上最终在/private/etc/my.cnf,但那是透明的。
另一个选项是在服务器启动时指定选项文件(通过 --defaults-file 参数):
Mikes-MacBook-Pro:etc 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.sock --port=5705
在听取了 John Elemans 的建议后,我使用了 mySQL workbench,打开了一个本地实例,在左侧是一个名为 'Instance' 的区域,其中有一个link 到 'Server Logs'。错误日志显示我在 my.cnf 中指定的日志文件不存在。所以我在 /usr/local/mysql 中创建了日志文件 mysql.log 并通过 WorkBench 重新启动了服务器。查看错误日志,抛出一条错误消息,提示 mysql 无法打开文件。检查权限,_mysql 不是所有者。所以我对日志文件进行了从 root 到 _mysql 的 chown,再次重新启动服务器,瞧,它开始工作了。谢谢大家。
不确定如何接受 John 的回答是正确的,所以我只 select 这个回答其他人的问题。
我在 mySQL 5.7 Community Edition 上尝试设置登录时遇到了这个 post。此版本附带一个启动守护程序 /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
,用于替换新安装的 my.cnf 文件。您可以将启动参数添加到 plist 文件以启用日志记录:
--log-output
、--general_log
、slow_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