You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

macOS Catalina系统启动mongod服务问题求助

解决MacOS 10.15(Catalina)下MongoDB无法启动的问题

我升级到Catalina后也碰到过一模一样的问题,系统根目录变成只读导致默认的/data/db目录没法创建,这里给你几个实用的解决办法:

方法一:自定义用户目录作为MongoDB数据存储路径

这是最简便的方案,不需要修改系统级目录:

  1. 在你的用户主目录下创建一个MongoDB数据文件夹:
    mkdir -p ~/mongodb-data
    
  2. 启动MongoDB时指定这个路径:
    mongod --dbpath ~/mongodb-data
    
  3. (可选)如果不想每次启动都输入路径参数,可以创建一个配置文件:
    • 先创建配置文件:
      touch ~/.mongod.conf
      
    • 打开文件并写入以下内容(替换[你的用户名]为实际用户名,比如hrishikeshpaul):
      storage:
        dbPath: /Users/[你的用户名]/mongodb-data
      
    • 之后启动MongoDB只需执行:
      mongod --config ~/.mongod.conf
      

方法二:通过Homebrew管理MongoDB服务(推荐)

如果你是用Homebrew安装的MongoDB,这个方案最省心,Homebrew已经适配了Catalina的目录限制:

  1. 先确认MongoDB已安装(没装的话执行安装命令):
    # 检查是否安装
    brew list | grep mongodb
    # 未安装则执行
    brew install mongodb
    
  2. 启动MongoDB服务:
    brew services start mongodb
    
  3. 停止服务的话用:
    brew services stop mongodb
    

方法三:使用系统可写目录(不推荐,相对麻烦)

如果你坚持要使用类似/data/db的路径,可以利用Catalina中/System/Volumes/Data这个可写的系统目录:

  1. 创建数据目录并设置权限:
    sudo mkdir -p /System/Volumes/Data/data/db
    sudo chown -R $(whoami) /System/Volumes/Data/data/db
    
  2. 启动时指定路径:
    mongod --dbpath /System/Volumes/Data/data/db
    
  3. (可选)创建软链接映射到/data/db,这样可以继续使用默认路径启动:
    sudo ln -s /System/Volumes/Data/data/db /data/db
    
    不过这个操作可能需要调整系统权限,不如前两个方案稳妥。

补充说明

MacOS 10.15(Catalina)开启了系统完整性保护(SIP)并将根目录设置为只读,所以直接在/下创建目录会触发Read-only file system错误,以上方案都是绕开这个限制的合理方式。

内容的提问来源于stack exchange,提问作者hrishikeshpaul

火山引擎 最新活动