我刚刚将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
没有结果。
我也尝试在mongo
之前运行mongod
,结果是:
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
有人可以帮我吗?我很感激
解决此问题的另一种方法 Catalina Mac OS 根和 mongodb 连接问题,请执行以下操作:
安装自制软件,如果有,请重新安装
在终端中运行以下命令
/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
文件夹中,通过运行以下命令创建自己的数据库/数据文件夹:
mkdir db
& CDdb folder
db folder
运行内部:mkdir data
& CDdata 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 外壳运行命令中:db.verion()
如果您看到某个版本,则您的连接有效。
从现在开始,要运行mongodb数据库和连接,每当你想要处理你的项目时,你必须随时打开两个单独的选项卡
。例: 在一个终端选项卡中运行命令 -> mongod --dbpath ~/data/db (这将启动连接( 在另一个终端选项卡中运行命令:mongo (这将启动外壳(
这些都必须运行。
旁注: 您不再需要开始 通过运行进行连接 酿造服务开始了MONGO-COMMUNITY。
请记住mongod --dbpath ~/data/db
现在基本上是 ->mongod
命令。Mac OS Catalina 更新产生了root权限问题,这就是为什么mongod
命令以前从未单独工作过的原因。
希望这对你有帮助。祝你好运。
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
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
升级到卡塔琳娜后遇到同样的问题。尝试了很多方法来解决问题,最终有所帮助的是重新安装brew,然后按照Mongodb官方网站上列出的步骤进行操作。
所以:
卸载brew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)
重新安装:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
按照以下步骤安装和运行 monbo 服务: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/