温馨提示×

linux下mongodb怎么配置

小樊
47
2026-10-10 07:26:05
栏目: 云计算

下面按常见使用场景给你讲 Linux 下 MongoDB 的配置方式,从安装 → 基础配置 → 启动 → 常见配置项一步一步来。


一、安装 MongoDB(以 Ubuntu / CentOS 为例)

1️⃣ Ubuntu(22.04 / 20.04)

# 导入公钥
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

# 添加源
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

sudo apt update
sudo apt install -y mongodb-org

2️⃣ CentOS / Rocky / Alma

cat > /etc/yum.repos.d/mongodb-org-7.0.repo <<EOF
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-7.0.asc
EOF

sudo yum install -y mongodb-org

二、MongoDB 配置文件位置

默认配置文件:

/etc/mongod.conf

启动服务:

sudo systemctl start mongod
sudo systemctl enable mongod

查看状态:

sudo systemctl status mongod

三、基础配置(mongod.conf 示例)

1️⃣ 最基础配置

storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true

systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true

net:
  port: 27017
  bindIp: 127.0.0.1

修改后重启:

sudo systemctl restart mongod

四、常见配置项详解

1️⃣ 允许远程访问

net:
  bindIp: 0.0.0.0

⚠️ 生产环境一定要配合认证使用


2️⃣ 开启用户认证

security:
  authorization: enabled

创建管理员:

mongosh
use admin
db.createUser({
  user: "root",
  pwd: "StrongPassword",
  roles: ["root"]
})

连接:

mongosh -u root -p --authenticationDatabase admin

3️⃣ 修改数据目录

storage:
  dbPath: /data/mongodb

并修改权限:

sudo mkdir -p /data/mongodb
sudo chown -R mongod:mongod /data/mongodb

4️⃣ 配置副本集(高可用)

replication:
  replSetName: rs0

初始化:

rs.initiate()

5️⃣ 限制内存(避免吃满)

storage:
  wiredTiger:
    engineConfig:
      cacheSizeGB: 2

五、防火墙配置(如开启远程)

# firewalld
sudo firewall-cmd --add-port=27017/tcp --permanent
sudo firewall-cmd --reload

# ufw
sudo ufw allow 27017

六、生产环境建议

✅ 启用认证
✅ 不使用 bindIp: 0.0.0.0 直接暴露公网
✅ 使用 TLS
✅ 定期备份(mongodump)
✅ 日志轮转


如果你愿意,可以告诉我:

  • 用的是 Ubuntu / CentOS / 其他
  • 是 本地开发 / 服务器 / Docker
  • 是否需要 副本集 / 认证 / 远程访问

我可以直接给你一套可用配置文件。

0 踩