Homebrewで自動起動の設定で謎にハマった恥さらし
暫且環境
苹果操作系统10.12.6
Homebrew 1.3.2
MongDB 3.4.7
みなさん、たまにlsof -iとかで動きっぱなしのプロセスとかないかなーって調べたりしますよね?
そしてなんとなくこれ無駄なんじゃないか?killしてダメでも再起動とかでどうにかなんだろとか思ってちょっとkillしちゃうことありますよね?(ない人には多分関係のない記事です)
在我的情况下,MySQL和MongoDB都在监听状态,MySQL之前只用过一次,所以我就先kill掉了,问题都没有。然后,MongoDB现在并没有在运行,但为什么还在持续监听呢?可能是其他的MongoDB在运行吧?虽然我并不太明白,就凭一股脑的冲动我就kill掉了它。
因此…
ryusaka-MBA:~$ mongo
MongoDB shell version: 3.0.7
connecting to: test
2016-02-13T02:10:30.013+0900 W NETWORK Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused
2016-02-13T02:10:30.015+0900 E QUERY Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed
at connect (src/mongo/shell/mongo.js:179:14)
at (connect):1:6 at src/mongo/shell/mongo.js:179
exception: connect failed
こんなエラーが・・・調べてみるとmongod –repairをしてみろとかmongod.lockを消してみろとか記事が出て来るんですが、どれも解決はせず。どうやら自動で起動できていたものが自分でsudo mongod –dbpath=/usr/local/var/mongodbと打たないと起動しなくなっていました。
看起来可以通过Homebrew自动启动(可能是在以前用Homebrew安装mongodb时设置的)
启动 MongoDB 服务
这样我认为没问题了
ryusaka-MBA:~$ mongo
……我哭了,出现了同样的错误
也许从这里开始,我会陷入一个无休止的困境,半天后…
sudo mongod –dbpath=/usr/local/var/mongodb,竟然需要sudo…
也许会…
请使用 sudo brew services start mongodb 启动 MongoDB
动了!!结果却像个烂透了似的。真是丢脸的事情。
看来根据是否加上sudo,添加的目标位置会有所不同。
不加sudo,则会添加到LaunchAgent(在用户登录时以用户权限启动);
加上sudo,则会添加到LaunchDaemon(在启动时以root权限启动)。