Mac 11.5.2系统启动mongodb-community@3.2报Input/output错误求助
解决方案
1. 清理残留的错误服务进程
先停止现有报错的服务,卸载异常加载的plist文件:
brew services stop mongodb-community@3.2 launchctl unload /usr/local/opt/mongodb-community@3.2/homebrew.mxcl.mongodb-community@3.2.plist
同时检查是否有残留的mongod进程占用端口,存在的话直接杀掉:
ps aux | grep mongod # 替换<pid>为查询到的mongod进程ID kill -9 <pid>
2. 修复目录权限问题
MongoDB 3.2默认数据目录为/usr/local/var/mongodb,日志目录为/usr/local/var/log/mongodb,需要确保当前用户拥有这两个目录的读写权限:
sudo chown -R $(whoami):admin /usr/local/var/mongodb sudo chown -R $(whoami):admin /usr/local/var/log/mongodb
如果你的配置文件/usr/local/etc/mongod.conf中自定义了dbpath、logpath路径,需要同步修改对应自定义路径的权限。注意MacOS 11及以上版本根目录默认是只读状态,不要将dbpath配置在/data/db等根目录路径下,建议放在/usr/local/var或者当前用户目录下。
3. 手动测试启动验证
先通过命令行直接启动MongoDB,排查是否还有配置层面的错误:
mongod --config /usr/local/etc/mongod.conf
如果终端没有报错,说明服务可以正常运行,按Ctrl+C停止后再用brew服务管理工具启动后台驻留服务:
brew services start mongodb-community@3.2
启动完成后执行brew services即可看到服务状态变为started。
4. 兼容性问题处理
MongoDB 3.2属于已停止维护的老旧版本,官方并未提供对MacOS 11(Big Sur)的适配支持,如果上述步骤执行后仍无法启动,可选择两种方案:
- 升级MongoDB版本到4.0及以上,这些版本适配了新的MacOS系统
- 必须使用3.2版本的场景,可通过Docker容器运行该版本,规避系统兼容性问题
内容的提问来源于stack exchange,提问作者SoftTimur
相关产品推荐
相关产品推荐

