Homebrew mongodb连接失败 - Mac OSX Sierra 10.12.6

时间:2018-02-05 20:01:46

标签: mongodb homebrew

我在Mac OSX Sierra 10.12.6上安装了mongodb和brew:

brew install mongodb

运行时没有错误:

brew services start mongodb

但是当我尝试跑步时:

mongo

我收到以下错误:

MongoDB shell version v3.6.2
connecting to: mongodb://127.0.0.1:27017
2018-02-05T14:55:25.952-0500 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2018-02-05T14:55:25.952-0500 E QUERY    [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:251:13
@(connect):1:6
exception: connect failed

我删除了.plist文件,确保/ data / db存在并且所有必要的权限都在其上。我可以毫无问题地启动mongodb并且一切都运行但我无法使用brew services start mongodb

运行

任何想法为什么?

3 个答案:

答案 0 :(得分:19)

如果您不需要保留当前数据:

brew services stop mongodb

brew uninstall mongodb

rm -rf /usr/local/var/mongodb/

rm -rf ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

rm -rf /usr/local/etc/mongod.conf

brew install mongodb

brew services start mongodb

应该升级到最新版本并启动它。

答案 1 :(得分:7)

我遇到了同样的问题,但事实证明mongod服务没有运行,即使brew services start mongodb报告没有问题。

但是如果直接运行mongod,服务将成功启动。问题在于/usr/local/var/mongodb

中的旧数据库文件

(这些配置可在~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist/usr/local/etc/mongod.conf

中找到

/usr/local/var/log/mongodb/mongo.log我看到一行

  

2018-02-12T15:51:56.110 + 0800 F CONTROL [initandlisten] **重要提示:升级问题:在尝试升级到3.6之前,需要将数据文件完全升级到3.4版;有关详细信息,请参阅http://dochub.mongodb.org/core/3.6-upgrade-fcv

然后我安装了mongodb 3.4(brew uninstall mongodb brew install mongodb@3.4),

运行 db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } ) 在mongo@3.4 shell中,

停止mongodb服务(brew services stop mongodb@3.4),

再次将mongodb升级到3.6(brew uninstall mongodb@3.4 brew install mongodb),

问题解决了。

(rm /usr/local/var/mongodb/*.lock,如果需要)

答案 2 :(得分:0)

与我相同。运行brew services start mongodb-community@4.2后,brew没有引发任何错误,但实际上有一个错误。我查看了MongoDB日志文件(/usr/local/var/log/mongodb/mongo.log),发现错误:

IllegalOperation: Attempted to create a lock file on a read-only directory: /usr/local/var/mongodb

使用brew启动MongoDB使其像您一样启动,因此您必须有权在/usr/local/var/mongodb下的数据文件夹中进行写入。

为了确保您有权在此文件夹中写入,请导航到父文件夹:

cd /usr/local/var

然后运行

sudo chown -R $USER mongodb

这将使您成为该文件夹以及该文件夹中所有文件的所有者。

停止MongoDB,重新启动它,它应该可以工作:

brew services stop mongodb-community@4.2

brew services start mongodb-community@4.2