首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用和运行brew服务问题启动mongodb社区@4.2

使用和运行brew服务问题启动mongodb社区@4.2
EN

Stack Overflow用户
提问于 2020-06-03 23:32:30
回答 3查看 6.3K关注 0票数 1

我有MacOSCatalinaVersion10.15.5,我安装了mongoDB,按照他们的站点https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/使用Homebrew指定的步骤。当我检查我的mongoDB是否正确安装时,我使用which mongo命令并得到/usr/local/bin/mongo响应。当我使用mongo --versionmongod --version时,我得到:

代码语言:javascript
运行
复制
MongoDB shell version v4.2.7
git version: 51d9fe12b5d19720e72dcd7db0f2f17dd9a19212
allocator: system
modules: none
build environment:
    distarch: x86_64
    target_arch: x86_64

代码语言:javascript
运行
复制
db version v4.2.7
git version: 51d9fe12b5d19720e72dcd7db0f2f17dd9a19212
allocator: system
modules: none
build environment:
    distarch: x86_64
    target_arch: x86_64

尊敬地,我认为这意味着它的正确安装和应该工作。

但是,当我打开终端并按照站点上的指示运行命令brew services start mongodb-community@4.2时,我得到:

代码语言:javascript
运行
复制
Error: undefined method `resolve_alias' for Formula:Class
/usr/local/bin/brew-services.rb:154:in `service'
/usr/local/bin/brew-services.rb:203:in `check'
/usr/local/bin/brew-services.rb:193:in `run!'
/usr/local/bin/brew-services.rb:397:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/usr/local/Homebrew/Library/Homebrew/utils.rb:81:in `require?'
/usr/local/Homebrew/Library/Homebrew/brew.rb:112:in `<main>'

注意:我的brew已经成功地更新和升级了!

我在网上搜索任何解决方案,但我找不到任何解决问题的方法.如果有人遇到类似的问题,请一步一步地解释,详细说明你是如何解决的?!

如果我直接运行命令mongod,就会得到:

代码语言:javascript
运行
复制
2020-06-04T01:19:41.351+0200 I  CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2020-06-04T01:19:41.355+0200 W  ASIO     [main] No TransportLayer configured during NetworkInterface startup
2020-06-04T01:19:41.355+0200 I  CONTROL  [initandlisten] MongoDB starting : pid=24712 port=27017 dbpath=/data/db 64-bit host=Air-de-Ruslan.home
2020-06-04T01:19:41.355+0200 I  CONTROL  [initandlisten] db version v4.2.7
2020-06-04T01:19:41.355+0200 I  CONTROL  [initandlisten] git version: 51d9fe12b5d19720e72dcd7db0f2f17dd9a19212
2020-06-04T01:19:41.355+0200 I  CONTROL  [initandlisten] allocator: system
2020-06-04T01:19:41.355+0200 I  CONTROL  [initandlisten] modules: none
2020-06-04T01:19:41.355+0200 I  CONTROL  [initandlisten] build environment:
2020-06-04T01:19:41.355+0200 I  CONTROL  [initandlisten]     distarch: x86_64
2020-06-04T01:19:41.355+0200 I  CONTROL  [initandlisten]     target_arch: x86_64
2020-06-04T01:19:41.355+0200 I  CONTROL  [initandlisten] options: {}
2020-06-04T01:19:41.355+0200 E  NETWORK  [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock Permission denied
2020-06-04T01:19:41.355+0200 F  -        [initandlisten] Fatal Assertion 40486 at src/mongo/transport/transport_layer_asio.cpp 684
2020-06-04T01:19:41.355+0200 F  -        [initandlisten] 

***aborting after fassert() failure

如果我直接运行命令mongo,就会得到:

代码语言:javascript
运行
复制
MongoDB shell version v4.2.7
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
2020-06-04T01:21:20.317+0200 E  QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:341:17
@(connect):2:6
2020-06-04T01:21:20.320+0200 F  -        [main] exception: connect failed
2020-06-04T01:21:20.320+0200 E  -        [main] exiting with code 1
EN

回答 3

Stack Overflow用户

发布于 2020-06-04 13:45:07

解决了

我必须使用命令删除/usr/local/bin/bret-services.rb

rm /usr/local/bin/brew-services.rb,它可以请求权限,所以添加sudo rm /usr/local/bin/brew-services.rb

在那之后,我试着运行brew services start mongodb-community@4.2,然后

Successfully started mongodb-community (label: homebrew.mxcl.mongodb-commu,但是当我将来自不同终端的mongo放在启动shell时,我得到了Socket exception error,所以我也检查了mongod.log文件,我发现这是一个套接字问题,所以我尝试了

ls -ls /tmp/mongodb-27017.sock和我

0 srwx------ 1 root root 0 June 04 14:51 /tmp/mongodb-27017.sock,这意味着所有者是根用户,而mongodb不能访问它,所以我做到了。

sudo rm -rf /tmp/mongodb-27017.sock

删除文件,然后重新启动mongodb

brew services start mongodb-community@4.2,它创建了新的.sock文件,其所有者直接是mongodb或实际的用户whoami,当我再次检查时

ls -lsah /tmp/mongodb-27017.sock

我证明了我是所有者,然后我可以打开新的终端,运行mongo,进入启用的连接并使用shell!

票数 6
EN

Stack Overflow用户

发布于 2021-07-26 15:40:30

在macos Big Surmongodb-community@5.0.1上进行测试

如果您正在使用自制软件并升级到mongodb-community@5.0,则在启动mongodb社区服务时可能会遇到错误。

如果存在,请使用rm -rf /usr/local/var/mongodb删除以前的dbpath文件夹,然后使用cd /usr/local/var && mkdir mongodb再次创建它。

那么brew services start mongodb-community应该可以正常工作。

票数 3
EN

Stack Overflow用户

发布于 2021-08-08 10:23:22

在MacOS Big (测试mongodb@5.0)上,以下内容总是返回一个错误(这意味着mongodb服务将自动加载):

代码语言:javascript
运行
复制
~ brew services start mongodb-community

mongodb-community error zaffer /Users/zaffer/Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist

默认情况下,mongodb社区配置存储在/usr/local/etc/mongod.conf中。

默认情况下,dbpath参数设置为/usr/local/var/mongodb

在分析日志时,我发现问题主要与此文件夹/usr/local/var/mongodb的权限有关。

以下几点对我有用:

代码语言:javascript
运行
复制
~ cd /usr/local/var/mongodb
~ sudo chown -R $(whoami) .
~ cd ..
~ sudo chown -R $(whoami) mongodb
~ brew services restart mongodb-community

如果您仍然面临问题,我建议更改此文件夹(/usr/local/var/mongodb)所有文件的文件权限:

代码语言:javascript
运行
复制
~ chmod -R 777 /usr/local/var/mongodb
~ brew services restart mongodb-community

或在拒绝许可时使用sudo

代码语言:javascript
运行
复制
~ sudo chmod -R 777 /usr/local/var/mongodb
~ brew services restart mongodb-community

如果您仍然面临问题,请使用以下内容之一,在作为后台进程运行mongod时观察这些错误:

代码语言:javascript
运行
复制
~ mongod
~ mongod --dbpath /usr/local/var/mongodb
~ mongod --config /usr/local/etc/mongod.conf

您也可能会遇到问题时,从一个较低版本的mongodb社区升级,例如。从3.6升级到5.0,在我的例子中,我倾向于保存现有的数据库,否则我可以为mongodb数据创建一个新的文件夹,并在/usr/local/etc/mongod.conf配置文件中更新dbpath。

建议的方法是进行增量升级,即从3.6升级到4.0,然后从4.0升级到4.4,然后从4.4升级到5.0。这样做的目的是为将数据从一个版本迁移到另一个版本设置推荐的兼容性版本。您可以使用mongodb手动设置兼容性版本(为此,需要一个正常工作的mongodb服务器):

代码语言:javascript
运行
复制
> db.adminCommand( { setFeatureCompatibilityVersion: <version> } )

链接到doc:https://docs.mongodb.com/manual/reference/command/setFeatureCompatibilityVersion/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62184438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档