Homebrew 安装的 MySQL 在 EI Capitan 上无法启动
用 Homebrew 安装的 MySQL 5.7.12 莫名其妙就挂掉了,翻看系统日志,看到一堆这样的提示:
Jun 2 20:08:49 zrong-mbp com.apple.xpc.launchd[1] (homebrew.mxcl.mysql)
: Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
这样的提示每10秒一次,从中午一直到现在。
MySQL 是使用 Homebrew 提供的 servies 子命令启动的:
1sudo brew services start mysql
这条命令做的事情比较简单,大概是这样:
1cp /usr/local/opt/mysql/homebrew.mxcl.mysql.plist /Library/LaunchDaemons
2sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
我在 在 Mac OS X 上安装lighttpd 中做过介绍。
折腾了几次之后,我又发现一条这样的信息:
Jun 2 20:11:08 zrong-mbp com.apple.xpc.launchd[1] (homebrew.mxcl.mysql)
: This service is defined to be constantly running and is inherently inefficient.
这一下让我找错了方向,有人说这是因为 Apple suggest avoiding KeepAlive and RunAtLoad 导致的。我删除了 homebrew.mxcl.mysql.plist 中的 KeepAlive 和 RunAtLoad ,当然是没有什么卵用。
接着看 /usr/local/var/mysql/{your-mac}.err
,我才发现真正问题所在:
2016-06-02T15:11:34.350795Z 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
注意这个log文档中的时间是格林威治时间。
原来是因为文件不可写导致的。看看这个 err 文件的权限是 _mysql:admin
,于是将整个 /usr/local/var/mysql
文件夹和之下所有文件权限改为相同即可:
1sudo chown -r _mysql:admin /usr/local/var/mysql
(全文完)
- 文章ID:2553
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/homebrew-mysql-no-start-in-ei-caption/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。