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

Mar*_*rin 8 database macos mongodb macos-catalina

我刚刚将我的 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 :
Run Code Online (Sandbox Code Playgroud)

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

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

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

brew tap mongodb/brew
brew reinstall mongodb-community
brew services restart mongodb-community
Run Code Online (Sandbox Code Playgroud)

如果我运行以下命令:

ps aux | grep -v grep | grep mongod
Run Code Online (Sandbox Code Playgroud)

没有结果。

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
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我吗?我很感激

Jac*_*ana 5

解决 Catalina Mac OS root 和 mongodb 连接问题的另一种方法是执行以下操作:

安装Homebrew,如果有,重新安装一次

在终端中运行以下命令

/usr/bin/ruby -e“$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

酿造 untap mongodb/brew && 酿造水龙头 mongodb/brew

酿造安装 mongodb-community@4.2

问题是 mongo 找不到,/db/data因为没有目录,所以你必须创建一个:

cd ~(这应该带您进入您的Users文件夹)

Users通过运行以下命令从文件夹创建您自己的 db/data 文件夹:

mkdir db& 里面有CDdb folder

里面db folder运行:mkdir data& cd 里面data folder

运行此命令:(在您刚刚创建的文件夹mongod --dbpath ~/data/db 内)Users/data/db/

现在打开一个新的终端选项卡并运行:(cd ~带您返回 Users) -> 现在运行:(cd .. & cd .. again (do this twice) 现在您应该位于Users 之前的文件夹中)

(现在找到tmp folder)cd 进入/tmp folder

删除 sock 文件(这会给您带来连接问题)

通过运行删除它:rm -rf mongodb-27017.sock

现在运行命令:(mongo现在应该可以工作)

在 mongo shell 内运行命令:db.verion() 如果您看到一个版本,则表明您的连接有效。

从现在开始,要运行 mongodb 数据库和连接,每当您想要处理项目时,您都必须始终打开两个单独的选项卡

例子:

在一个终端选项卡中运行命令 -> mongod --dbpath ~/data/db
(这将启动连接)

在另一个终端选项卡中运行命令: mongo
(这会启动外壳)

这两个都必须运行..

边注:
你不再需要开始
通过运行连接
brew 服务不再启动 mongo-community。

记住现在mongod --dbpath ~/data/db基本上是 ->mongod命令.. Mac OS Catalina 更新造成了 root 权限问题,这就是为什么mongod以前单独使用命令从未起作用的原因。

希望这对您有帮助。祝你好运。


Adi*_*aik 1

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

Run Code Online (Sandbox Code Playgroud)
Command 1: deletes the /tmp/mongodb-27017.sock file
$sudo rm -rf /tmp/mongodb-27017.sock
Run Code Online (Sandbox Code Playgroud)
Command 2: starts mongod service
$sudo service mongod start
Run Code Online (Sandbox Code Playgroud)
Command 3: shows the file with its ownership details
ls -lsah /tmp/mongodb-27017.sock
Run Code Online (Sandbox Code Playgroud)
output
0 srwx------ 1 mongodb mongodb 0 Aug 24 04:01 /tmp/mongodb-27017.sock 
Run Code Online (Sandbox Code Playgroud)