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

时间:2019-12-18 11:25:08

标签: database mongodb macos 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 :

使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

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

4 个答案:

答案 0 :(得分:2)

要解决此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文件夹)

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

mkdir db和CD db folder

db folder运行内:mkdir data和cd在data folder

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

现在打开一个新标签页& 运行:cd ~(将您带回用户)->现在运行:cd .. & cd .. again (do this twice) (现在您应该位于文件夹中 用户之前

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

删除袜子文件(这给您带来连接问题)

运行以下命令删除它:rm -rf mongodb-27017.sock

立即运行命令:mongo(现在应该可以运行)

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

从现在开始,要运行mongodb数据库和连接,无论何时要处理项目,都必须始终打开选项卡

Example:

in one tab run command -> mongod --dbpath ~/data/db 
(this starts the connection)

in the other tab run command: mongo
(this starts the shell)

这两个都必须在运行。

Side Note:
you no longer need to start
the connection by running 
brew services start mongo-community anymore.

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

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

答案 1 :(得分:1)

在macOS Big Sur中遇到了类似的问题。在尝试了上述所有方法后,包括

  • 更新自制软件
  • 重新安装MongoDB,MongoDB社区并设置/System/Volumes/Data/data/dbfolder

此命令对我有用mongod --dbpath=/System/Volumes/Data/data/db

参考:https://medium.com/codespace69/mongodb-troubleshooting-errors-for-beginners-and-macos-catalina-31befd99f6c8

答案 2 :(得分:0)

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 

答案 3 :(得分:0)

升级到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/