在运行brew services start mongodb-community
时,我遇到了这个错误。
mongodb-community error root /Library/LaunchDaemons/homebrew.mxcl.mongodb-community.plist
我已经尝试重新安装Homebrew、Mongodb和其他一些解决方案,但都没有起作用。如果有帮助的话,将不胜感激,谢谢!
你好,停止mongodb后运行sudo brew services start mongodb-community
命令解决了问题。
我遇到了同样的问题。最终在 /usr/local/var/log/mongodb/mongo.log
找到了错误,提示我的数据库文件在 /usr/local/var/mongodb
中版本过旧(版本为4.2),不适用于这个版本的 mongodb (版本为4.4)。由于我并不需要这些文件,所以我删除了它们,mongodb 就可以正常启动了。查看你的日志,它们会告诉你问题出在哪里。
你好,刚刚解决了一个类似的问题。如果您尝试使用root运行mongodb,则会显示错误,这个问题很可能是文件权限问题。
您可以通过以下命令确认位置(目录可能因系统而异,以下是默认值):查看mongo日志
cat /usr/local/var/log/mongodb/mongo.log
您很可能会看到一个“Permission denied”(拒绝许可)错误的文件。(我的是一堆文件)。
您需要对这些文件运行chown
:
chown -R <login> /usr/local/var/mongodb
这应该可以解决问题。
您可以通过运行以下命令进行验证:ls -la <directory>
,并验证所有内容现在都属于您的登录用户。
出现此错误的另一个原因可能是您忘记启用旧版本的不兼容功能。如果您连续更新了几个版本,这种情况可能会发生。例如,如果您想从3.2迁移到3.6,则必须安装所有中间版本(在本例中为3.4),并且对于每个版本,您都必须在安装下一个版本之前启用“不兼容的3.4功能”,使用以下命令:
db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )
https://www.dev2qa.com/how-to-fix-failed-to-unlink-socket-file-error-when-start-mongo-db-on-macos/
接着,我确保了data/db的权限是正确的
d-wx--x--x 3 name wheel 96 Mar 22 11:20 data
然后停止了mongo的brew服务并重新启动。这样就可以了。
我尝试了2个小时来解决这个问题。问题出在mongod.conf文件中的一个意外的标记,导致mongodb-community@4.2无法启动。
要跟踪此问题,请打开.plist
文件并查看输出日志文件位置,在StandardErrorPath
键后可以找到它。
sudo brew services stop mongodb-community
,然后再执行启动命令 sudo brew services start mongodb-community
,问题就解决了。与Rob Lopez / Craig Eddy的回答类似,以下是我在macOS ventura 13上使用mongodb-community@6.0和homebrew的解决方法:
在运行brew services start mongodb-community
后,我遇到了类似的错误。
Name Status File
mongodb-community error 25600 ~/Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist
始终通过使用cat /usr/local/var/log/mongodb/mongo.log
来检查日志,这总是有帮助的。
在我的情况下,看起来最后一行指出了问题"error":"IllegalOperation: 尝试在只读目录上创建锁文件:/usr/local/var/mongodb"
{"t":{"$date":"2023-06-03T14:30:42.768+08:00"},"s":"I", "c":"CONTROL", "id":21951, "ctx":"initandlisten","msg":"Options set by command line","attr":{"options":{"config":"/usr/local/etc/mongod.conf","net":{"bindIp":"127.0.0.1, ::1","ipv6":true},"storage":{"dbPath":"/usr/local/var/mongodb"},"systemLog":{"destination":"file","logAppend":true,"path":"/usr/local/var/log/mongodb/mongo.log"}}}}
{"t":{"$date":"2023-06-03T14:30:42.769+08:00"},"s":"I", "c":"NETWORK", "id":5693100, "ctx":"initandlisten","msg":"Asio socket.set_option failed with std::system_error","attr":{"note":"acceptor TCP fast open","option":{"level":6,"name":261,"data":"00 04 00 00"},"error":{"what":"set_option: Invalid argument","message":"Invalid argument","category":"asio.system","value":22}}}
{"t":{"$date":"2023-06-03T14:30:42.769+08:00"},"s":"I", "c":"NETWORK", "id":5693100, "ctx":"initandlisten","msg":"Asio socket.set_option failed with std::system_error","attr":{"note":"acceptor TCP fast open","option":{"level":6,"name":261,"data":"00 04 00 00"},"error":{"what":"set_option: Invalid argument","message":"Invalid argument","category":"asio.system","value":22}}}
{"t":{"$date":"2023-06-03T14:30:42.770+08:00"},"s":"E", "c":"CONTROL", "id":20557, "ctx":"initandlisten","msg":"DBException in initAndListen, terminating","attr":{"error":"IllegalOperation: Attempted to create a lock file on a read-only directory: /usr/local/var/mongodb"}}
sudo brew services start mongodb-community
命令,它起作用了,但也收到了一个警告,说不推荐这样做。/usr/local/var/mongodb
的权限,这解决了错误。sudo chown -R `id -un` /usr/local/var/mongodb
只是额外信息:
systemLog:
destination: file
path: /opt/homebrew/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /opt/homebrew/var/mongodb
net:
bindIp: 127.0.0.1, ::1
ipv6: true
/opt/homebrew/var/mongodb
现在你需要按照以下命令操作:$cd /opt/homebrew/var
$rm mongodb
$mkdir mongodb
brew services restart mongodb-community
brew services list
,则会得到以下状态:mongodb-community error root /Library/LaunchDaemons/homebrew.mxcl.mongodb-community.plist
。我想知道这是否需要在pList中添加权限。但不确定如何操作。寻求帮助。 - fredrick cyrilsudo brew services start mongodb-community
- Shehan Jayalath