温馨提示×

MongoDB在CentOS上的数据存储路径如何设置

小樊
43
2025-12-07 13:41:05
栏目: 云计算

MongoDB 在 CentOS 上的数据存储路径设置

一、配置文件方式(推荐)

  • 编辑配置文件:sudo vi /etc/mongod.conf
  • 在 storage 段落设置 dbPath(YAML 格式):
    storage:
      dbPath: /mydata/db
    
  • 创建目录并授权(目录不存在会导致服务无法启动):
    sudo mkdir -p /mydata/db
    sudo chown -R mongod:mongod /mydata/db
    
  • 重启服务并验证:
    sudo systemctl restart mongod
    sudo systemctl status mongod
    

说明:配置文件路径为 /etc/mongod.conf,数据目录由 storage.dbPath 指定,修改后需重启生效。

二、命令行方式(临时生效)

  • 停止服务:sudo systemctl stop mongod
  • 创建并授权目录:
    sudo mkdir -p /custom/db/directory
    sudo chown -R mongod:mongod /custom/db/directory
    
  • 启动时指定新路径:
    sudo systemctl start mongod --dbpath=/custom/db/directory
    

说明:通过 –dbpath 参数可在启动时临时指定数据目录,适合测试或应急;持久化建议写入配置文件。

三、迁移现有数据到新目录

  • 停止服务:sudo systemctl stop mongod
  • 同步原数据(注意源目录写法,避免目录嵌套错误):
    sudo rsync -av /var/lib/mongo /mnt/database/mongodb
    
  • 备份旧目录:
    sudo mv /var/lib/mongo /var/lib/mongo.bak
    
  • 修改配置 /etc/mongod.conf 的 storage.dbPath 为新目录
  • 启动并校验:
    sudo systemctl start mongod
    sudo systemctl status mongod
    

说明:默认数据目录通常为 /var/lib/mongo;迁移时用 rsync 可保留权限与属性,启动失败可查看 /var/log/mongodb/mongod.log

四、常见问题与处理

  • 目录不存在或权限不足:MongoDB 不会自动创建目录,需提前创建并赋权为 mongod:mongod,否则启动失败。
  • SELinux 拦截:为新目录设置正确的 SELinux 类型并恢复上下文:
    sudo semanage fcontext -a -t mongod_var_lib_t "/mydata/db(/.*)?"
    sudo restorecon -Rv /mydata/db
    
  • 路径格式:YAML 中应使用空格与缩进,示例:
    storage:
      dbPath: /mydata/db
    

以上要点可避免因目录缺失、权限或 SELinux 策略导致的启动异常。

0