macOS Catalina系统启动mongod服务问题求助
解决MacOS 10.15(Catalina)下MongoDB无法启动的问题
我升级到Catalina后也碰到过一模一样的问题,系统根目录变成只读导致默认的/data/db目录没法创建,这里给你几个实用的解决办法:
方法一:自定义用户目录作为MongoDB数据存储路径
这是最简便的方案,不需要修改系统级目录:
- 在你的用户主目录下创建一个MongoDB数据文件夹:
mkdir -p ~/mongodb-data - 启动MongoDB时指定这个路径:
mongod --dbpath ~/mongodb-data - (可选)如果不想每次启动都输入路径参数,可以创建一个配置文件:
- 先创建配置文件:
touch ~/.mongod.conf - 打开文件并写入以下内容(替换
[你的用户名]为实际用户名,比如hrishikeshpaul):storage: dbPath: /Users/[你的用户名]/mongodb-data - 之后启动MongoDB只需执行:
mongod --config ~/.mongod.conf
- 先创建配置文件:
方法二:通过Homebrew管理MongoDB服务(推荐)
如果你是用Homebrew安装的MongoDB,这个方案最省心,Homebrew已经适配了Catalina的目录限制:
- 先确认MongoDB已安装(没装的话执行安装命令):
# 检查是否安装 brew list | grep mongodb # 未安装则执行 brew install mongodb - 启动MongoDB服务:
brew services start mongodb - 停止服务的话用:
brew services stop mongodb
方法三:使用系统可写目录(不推荐,相对麻烦)
如果你坚持要使用类似/data/db的路径,可以利用Catalina中/System/Volumes/Data这个可写的系统目录:
- 创建数据目录并设置权限:
sudo mkdir -p /System/Volumes/Data/data/db sudo chown -R $(whoami) /System/Volumes/Data/data/db - 启动时指定路径:
mongod --dbpath /System/Volumes/Data/data/db - (可选)创建软链接映射到
/data/db,这样可以继续使用默认路径启动:
不过这个操作可能需要调整系统权限,不如前两个方案稳妥。sudo ln -s /System/Volumes/Data/data/db /data/db
补充说明
MacOS 10.15(Catalina)开启了系统完整性保护(SIP)并将根目录设置为只读,所以直接在/下创建目录会触发Read-only file system错误,以上方案都是绕开这个限制的合理方式。
内容的提问来源于stack exchange,提问作者hrishikeshpaul




