MongoDB Catalina:连接尝试失败:SocketException:连接到127.0.0.1:27017时出错。

9

我刚把我的Mac电脑升级到了Catalina 10.15.2,但是我无法运行MongoDB。

当我发送mongo命令时,我收到了以下信息:

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 :

使Mongo工作的唯一方法是重新启动Mac。

如果我使用命令ps检查进程,我看不到进程已经开启,端口27017可用。

我已经尝试运行以下命令:

brew tap mongodb/brew
brew reinstall mongodb-community
brew services restart mongodb-community

如果我运行以下命令:

ps aux | grep -v grep | grep mongod

没有结果。

我尝试先运行mongod再运行mongo,结果如下:

2019-12-18T12:17:45.916+0100 I  CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-12-18T12:17:45.920+0100 I  CONTROL  [initandlisten] MongoDB starting : pid=9375 port=27017 dbpath=/data/db 64-bit host=Marcos-MacBook-Pro.local
2019-12-18T12:17:45.920+0100 I  CONTROL  [initandlisten] db version v4.2.1
2019-12-18T12:17:45.920+0100 I  CONTROL  [initandlisten] git version: edf6d45851c0b9ee15548f0f847df141764a317e
2019-12-18T12:17:45.920+0100 I  CONTROL  [initandlisten] allocator: system
2019-12-18T12:17:45.920+0100 I  CONTROL  [initandlisten] modules: none
2019-12-18T12:17:45.920+0100 I  CONTROL  [initandlisten] build environment:
2019-12-18T12:17:45.920+0100 I  CONTROL  [initandlisten]     distarch: x86_64
2019-12-18T12:17:45.920+0100 I  CONTROL  [initandlisten]     target_arch: x86_64
2019-12-18T12:17:45.920+0100 I  CONTROL  [initandlisten] options: {}
2019-12-18T12:17:45.920+0100 E  NETWORK  [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock Permission denied
2019-12-18T12:17:45.920+0100 F  -        [initandlisten] Fatal Assertion 40486 at src/mongo/transport/transport_layer_asio.cpp 693
2019-12-18T12:17:45.920+0100 F  -        [initandlisten] 

***aborting after fassert() failure

有人可以帮我吗?非常感谢


执行sudo rm /tmp/mongodb-27017.sock命令,然后重新启动mongod。 - Alex Blex
4个回答

5
另一种解决Catalina Mac OS根和mongodb连接问题的方法,请按以下步骤操作:
安装Homebrew,如果已经安装了,请重新安装
在终端中运行以下命令:
``` /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew untap mongodb/brew && brew tap mongodb/brew
brew install mongodb-community@4.2 ```
问题是mongo无法找到/db/data,因为没有目录,所以您必须创建一个:
`cd ~`(这应该会带您到您的“用户”文件夹)
从“Users”文件夹中运行以下命令来创建自己的`db / data`文件夹:
``` mkdir db & cd db mkdir data & cd data mongod --dbpath ~/data/db ```
现在打开一个新的终端标签并运行:`cd ~`(回到Users)-> 现在运行:`cd .. & cd..(再次执行两次)`(现在应该在“ Users”之前的文件夹中)
(现在找到tmp文件夹)并进入/tmp文件夹
通过运行以下命令删除套接字文件(它会给您连接问题):
`rm -rf mongodb-27017.sock`
现在运行命令:`mongo`(现在应该正常工作)
在mongo shell内运行命令:`db.verion()`,如果看到版本,则说明连接正常。
从现在开始,要运行mongodb数据库和连接,您需要始终打开两个单独的标签页,每当您想要处理您的项目时。
例如: 在一个终端标签中运行命令-> `mongod --dbpath ~/data/db`(这将启动连接)
在另一个终端标签中运行命令:`mongo`(这将启动shell)
这两者都必须运行..
另外需要注意的是,您不再需要通过运行brew services start mongo-community来启动连接。
请记住,`mongod --dbpath ~/data/db`现在基本上是`mongod`命令了。Mac OS Catalina更新创建了根权限问题,因此以前单独使用`mongod`命令无法正常工作。
希望这能对您有所帮助。祝你好运。

2

1
升级到Catalina后遇到了相同的问题。尝试了很多方法来解决这个问题,最终帮助我解决问题的是重新安装brew,然后按照官方mongodb网站上列出的步骤进行操作。
所以:
1. 卸载brew: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh) 2. 再次安装: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)" 3. 按照以下步骤安装和运行monbo服务: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

1
This error is caused due to ownership issues.
Here we are changing the ownership to 'mongodb' user.


Command 1: deletes the /tmp/mongodb-27017.sock file
$sudo rm -rf /tmp/mongodb-27017.sock

Command 2: starts mongod service
$sudo service mongod start

Command 3: shows the file with its ownership details
ls -lsah /tmp/mongodb-27017.sock

output
0 srwx------ 1 mongodb mongodb 0 Aug 24 04:01 /tmp/mongodb-27017.sock 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接