在 CentOS 上安装 MongoDB 的两种常用方式
方式一 YUM 安装 MongoDB 社区版
创建官方 YUM 源文件
新建文件:/etc/yum.repos.d/mongodb-org.repo,内容示例(以 4.4 为例,可按需替换为其他版本):
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
说明:将 4.4 替换为目标版本号(如 5.0、6.0、7.0)即可安装对应版本。
安装 MongoDB 组件
执行命令:
sudo yum install -y mongodb-org
该元包会安装:mongod、mongos、mongo shell、tools。
启动与开机自启
sudo systemctl enable mongod --now
sudo systemctl status mongod
看到 active (running) 即表示运行正常。
远程访问与防火墙
编辑配置文件:/etc/mongod.conf,将 net.bindIp 改为:
net:
port: 27017
bindIp: 0.0.0.0
重启生效:
sudo systemctl restart mongod
开放防火墙端口:
sudo firewall-cmd --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
如需云服务器,还需在云厂商安全组放行 27017。
启用鉴权与创建管理员(建议生产环境开启)
在 /etc/mongod.conf 中启用:
security:
authorization: enabled
重启:
sudo systemctl restart mongod
进入 shell 创建管理员(示例创建于 admin 库):
mongo
use admin
db.createUser({
user: "mongoAdmin",
pwd: "ChangeMe123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
使用账号连接:
mongo -u mongoAdmin -p --authenticationDatabase admin
提示:也可创建更高权限的 root 角色用户用于运维。
方式二 TGZ 解压安装 MongoDB
下载与解压
示例(以 CentOS 7 的 4.2 版本为例,实际请选择对应系统/版本):
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.3.tgz
tar -zxvf mongodb-linux-x86_64-rhel70-4.2.3.tgz
sudo mv mongodb-linux-x86_64-rhel70-4.2.3 /usr/local/mongodb
其他版本请到 MongoDB 下载中心选择 Linux x86_64 TGZ 包。
创建数据与日志目录
sudo mkdir -p /usr/local/mongodb/data/db
sudo mkdir -p /usr/local/mongodb/logs
sudo touch /usr/local/mongodb/logs/mongodb.log
配置环境变量(可选,便于全局使用 mongod/mongo)
echo 'export PATH=/usr/local/mongodb/bin:$PATH' | sudo tee -a /etc/profile
source /etc/profile
编写配置文件
新建:/usr/local/mongodb/mongodb.conf
dbpath=/usr/local/mongodb/data/db
logpath=/usr/local/mongodb/logs/mongodb.log
logappend=true
port=27017
fork=true
bind_ip=0.0.0.0
# 初次安装可先注释 auth=true,创建用户后再开启
# auth=true
说明:如需开启鉴权,取消注释 auth=true 并重启。
启动与关闭
启动:
mongod --config /usr/local/mongodb/mongodb.conf
关闭(推荐方式):
mongod --shutdown --config /usr/local/mongodb/mongodb.conf
如需开机自启,可将启动命令加入 /etc/rc.local 或使用 systemd 自定义服务单元管理。
创建用户与启用鉴权(方式二同样适用)
先以无鉴权方式连接:
mongo
在 admin 库创建管理员:
use admin
db.createUser({user:"root",pwd:"StrongPass!",roles:["root"]})
编辑 mongodb.conf 开启:
security:
authorization: enabled
重启后使用账号连接:
mongo -u root -p --authenticationDatabase admin
提示:为业务库单独创建具有最小权限的用户,遵循最小权限原则。
常见问题与排查
服务启动失败
使用以下命令查看详细错误:
sudo systemctl status mongod
sudo journalctl -xe
常见原因:配置文件缩进错误(YAML 要求空格)、目录权限不足、端口被占用。
远程连接被拒绝
确认 bind_ip=0.0.0.0 已设置、云服务器安全组与系统防火墙已放行 27017,并已完成鉴权配置。
版本选择与兼容性
MongoDB 官方源在 CentOS 8 上可用;早期版本如 4.2 的 TGZ 包名通常带有 rhel70/rhel80 标识,表示适配的 RHEL/CentOS 主版本,下载时需与系统匹配。