Linux下MongoDB配置详解
MongoDB作为流行的NoSQL数据库,在Linux系统中的部署需遵循规范流程,本文系统阐述配置步骤,涵盖环境准备、安装、配置文件解析、服务管理与安全设置,助力高效部署。

环境准备与安装
部署前需满足系统要求并安装依赖,步骤因发行版而异:
系统更新
确保系统包最新,避免兼容性问题:
- Debian/Ubuntu:
sudo apt update && sudo apt upgrade
- CentOS/RHEL:
sudo yum update # 或 sudo dnf update
安装依赖
编译安装需编译工具与Python库(若需扩展):
sudo apt install -y build-essential python3-pip # Debian/Ubuntu
sudo yum install -y gcc-c++ make python3-pip # CentOS/RHEL
安装MongoDB
提供二进制包安装与包管理器安装两种方式:
(1)二进制包安装(推荐)
- 下载二进制包(官网:https://www.mongodb.com/try/download/community):
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.8.tgz tar -xzf mongodb-linux-x86_64-ubuntu2004-6.0.8.tgz -C /usr/local/
- 重命名安装目录:
mv /usr/local/mongodb-linux-x86_64-ubuntu2004-6.0.8 /usr/local/mongodb
(2)包管理器安装
- Debian/Ubuntu:
sudo apt install mongodb-org
- CentOS/RHEL(需添加EPEL源):
sudo yum install -y epel-release && sudo yum install -y mongodb-org
配置目录与权限
MongoDB默认数据路径为/data/db,需提前创建并设置权限:
sudo mkdir -p /data/db sudo chown -R mongodb:mongodb /data/db
配置文件详解
MongoDB配置通过mongod.conf实现,默认位于安装目录的conf文件夹(如/usr/local/mongodb/conf/mongod.conf),配置分为全局、存储、网络、安全等模块,核心项如下表:
| 配置项 | 默认值 | 说明 |
|---|---|---|
| bind_ip | 0.0.1 | 仅允许本地连接 |
| port | 27017 | 监听端口 |
| storage.dbPath | /data/db | 数据存储路径 |
| storage.journaling | true | 启用操作日志(保障持久性) |
| net.bindIp | 0.0.0 | 允许外部访问(生产环境需谨慎) |
| security.authorization | enabled | 启用认证(安全模式) |
| security.users | 认证用户配置(空对象表示无用户) | |
| replication.replSetName | 复制集名称(留空表示非复制集) |
关键配置说明:
security.authorization: enabled:生产环境必选,防止未授权访问。net.bindIp: 0.0.0.0:允许所有IP访问,需配合防火墙限制。dbPath:确保路径存在且具有读写权限,避免数据丢失。
启动与运行管理
MongoDB可通过命令行直接启动,或通过systemd实现自动化管理。
命令行启动
在安装目录执行:

sudo /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/conf/mongod.conf
启动后终端会显示日志(如“waiting for connections on port 27017”)。
systemd服务管理(推荐)
使用systemd实现开机自启动与故障恢复:
(1)创建服务文件
在/etc/systemd/system/下创建mongodb.service:
[Unit] Description=High-performance, schema-free document-oriented database After=network.target [Service] User=mongodb Group=mongodb ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/conf/mongod.conf Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
(2)设置用户与组
确保MongoDB有独立账户:
sudo useradd -r -m mongodb sudo chown -R mongodb:mongodb /usr/local/mongodb /data/db
(3)加载与启动服务
sudo systemctl daemon-reload sudo systemctl start mongodb sudo systemctl enable mongodb # 开机自启动
(4)服务状态检查
sudo systemctl status mongodb
输出示例:
● mongodb.service - High-performance, schema-free document-oriented database
Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since ...停止与重启
sudo systemctl stop mongodb # 停止服务 sudo systemctl restart mongodb # 重启服务
安全与权限配置
生产环境需重点配置认证、防火墙与访问控制。
启用认证
在mongod.conf中设置security.authorization: enabled,并添加管理员用户(如root):
security:
authorization: enabled
users:
- role: userAdminAnyDatabase
users:
- user: root
password: "$2a$12$..."使用mongo客户端添加用户:
mongo
use admin
db.createUser({
user: "root",
pwd: "StrongPassword123",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" }
]
})防火墙配置
允许端口27017通过防火墙:

- Debian/Ubuntu(ufw):
sudo ufw allow 27017/tcp sudo ufw enable
- CentOS/RHEL(firewalld):
sudo firewall-cmd --add-port=27017/tcp --permanent sudo firewall-cmd --reload
网络绑定
修改net.bindIp为内网IP(如168.1.100),限制外部访问:
net: bindIp: 192.168.1.100
高级配置(复制集/分片)
复制集(高可用)
通过配置多个mongod实例组成复制集,步骤如下:
- 配置文件添加复制集参数:
replication: replSetName: "rs0"
- 启动多个实例:
- 实例1(配置文件
mongod1.conf):storage: dbPath: /data/rs0/db1 net: bindIp: 192.168.1.100 replication: replSetName: "rs0"
- 实例2(配置文件
mongod2.conf):storage: dbPath: /data/rs0/db2 net: bindIp: 192.168.1.101 replication: replSetName: "rs0"
- 实例1(配置文件
- 初始化复制集:
连接第一个实例:mongo --port 27017 use admin rs.initiate({ _id: "rs0", members: [ { _id: 0, host: "localhost:27017" }, { _id: 1, host: "localhost:27018" } ] })
分片集群(大规模存储)
通过mongos代理服务实现水平扩展,需先启用分片并创建分片集合:
use admin
sh.enableSharding("mydb")
sh.shardCollection("mydb.mycol", { _id: "hashed" })FAQs
如何检查MongoDB服务是否正常运行?
- 系统服务状态:执行
sudo systemctl status mongodb,若输出“active (running)”,则服务正常。 - 客户端连接测试:打开
mongo客户端连接服务(如mongo --port 27017),若成功登录则服务可用。
如何修改MongoDB的默认端口(27017)?
修改mongod.conf中的net.port参数(如改为27018):
net: port: 27018
重启服务使配置生效:
sudo systemctl restart mongodb
修改后需同步更新防火墙和客户端端口配置。
通过以上步骤,可完成Linux下MongoDB的规范配置,实现稳定、安全的数据库服务,后续可根据需求扩展复制集、分片等高级功能,提升系统可用性与扩展性。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/199698.html


