温馨提示×

ubuntu mongodb怎样配置数据目录

小樊
34
2026-10-25 08:13:30
栏目: 云计算

在 Ubuntu 上配置 MongoDB 的数据目录,通常包括修改配置文件、创建目录、修改权限和重启服务几个步骤。下面以 MongoDB 6.x / 7.x(使用 systemd) 为例说明。


一、默认数据目录

MongoDB 默认数据目录是:

/var/lib/mongodb

配置文件位置:

/etc/mongod.conf

二、修改数据目录步骤

1. 创建新的数据目录

例如,想把数据放到 /data/mongodb:

sudo mkdir -p /data/mongodb

2. 修改目录权限

MongoDB 默认以 mongodb 用户运行:

sudo chown -R mongodb:mongodb /data/mongodb
sudo chmod 700 /data/mongodb

3. 修改 MongoDB 配置文件

编辑配置文件:

sudo nano /etc/mongod.conf

找到 storage 部分,修改 dbPath:

storage:
  dbPath: /data/mongodb
  journal:
    enabled: true

注意 YAML 格式,缩进必须是空格


三、处理 AppArmor(重要)

Ubuntu 默认启用 AppArmor,否则 MongoDB 可能无法访问新目录。

方法 1:修改 AppArmor 配置(推荐)

编辑:

sudo nano /etc/apparmor.d/usr/bin/mongod

在文件中添加:

/data/mongodb/** rw,
/data/mongodb/ rw,

然后重新加载:

sudo apparmor_parser -r /etc/apparmor.d/usr/bin/mongod

方法 2:临时关闭(不推荐)

sudo systemctl stop apparmor
sudo systemctl disable apparmor

四、重启 MongoDB

sudo systemctl restart mongod

查看状态:

sudo systemctl status mongod

五、验证数据目录是否生效

进入 MongoDB:

mongosh

执行:

db.runCommand({ getCmdLineOpts: 1 })

查看 storage.dbPath 是否为你设置的目录。


六、常见问题

1. 启动失败,提示权限不足

✅ 确认目录属主是 mongodb ✅ 确认 AppArmor 已配置

2. 原有数据如何迁移

sudo systemctl stop mongod
sudo cp -a /var/lib/mongodb /data/mongodb
sudo chown -R mongodb:mongodb /data/mongodb
sudo systemctl start mongod

如果你使用的是 Docker / MongoDB 4.x / WSL / 云服务器,可以告诉我具体环境,我可以给你更针对性的配置方式。

0 踩