我在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
任何想法为什么?
答案 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