在 CentOS 上配置 MongoDB 的完整步骤
一 准备与安装
- 更新系统并安装必要工具(可选):执行命令:sudo yum update -y,以及 sudo yum install -y wget vim。
- 添加 MongoDB 官方 YUM 仓库(以 4.4 为例,可按需调整版本):
- 导入 GPG 密钥:sudo rpm -v --import https://www.mongodb.org/static/pgp/server-4.4.asc
- 创建仓库文件:sudo vi /etc/yum.repos.d/mongodb-org-4.4.repo,内容如下:
[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
- 安装 MongoDB 社区版:sudo yum install -y mongodb-org。
- 说明:部分教程会先安装 EPEL 仓库(如 sudo yum install epel-release),在某些环境下可提升依赖可用性,但并非所有环境都必需。
二 核心配置 mongod.conf
- 编辑配置文件:sudo vi /etc/mongod.conf,常用关键项如下(YAML 格式):
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
port: 27017
bindIp: 127.0.0.1(仅本地)或 0.0.0.0(允许远程,生产建议限定具体 IP)
security:
authorization: enabled(启用后需认证)
- 修改配置后使生效:sudo systemctl restart mongod。
三 启动与验证
- 启动服务并设置开机自启:
- 启动:sudo systemctl start mongod
- 自启:sudo systemctl enable mongod
- 状态:sudo systemctl status mongod(应显示 active (running))
- 连接测试:
- 本地连接:mongo
- 查看版本:db.version()
- 故障排查:查看日志 /var/log/mongodb/mongod.log;常见问题包括端口占用、目录权限不足、配置语法错误等。
四 远程访问与安全加固
- 防火墙放行(firewalld):
- 开放端口:sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
- 重载规则:sudo firewall-cmd --reload
- 启用认证与创建管理员:
- 在 /etc/mongod.conf 中设置:security.authorization: enabled 并重启服务
- 进入 Shell:mongo
- 创建管理员(示例赋予超级权限):
use admin
db.createUser({ user: “admin”, pwd: “YourStrongP@ssw0rd”, roles: [“root”] })
- 认证连接:mongo -u admin -p YourStrongP@ssw0rd --authenticationDatabase admin
- 安全建议:
- 避免直接绑定 0.0.0.0,生产环境仅开放必要来源 IP
- 使用强密码并定期轮换
- 保持 MongoDB 与系统补丁更新
五 常见问题与进阶
- 无法启动或端口被占用:检查 /var/log/mongodb/mongod.log,确认 27017 未被其他进程占用,必要时调整端口或释放占用进程。
- SELinux 拦截(如连接被拒):可临时测试 sudo setenforce 0;生产环境建议通过策略放行而非长期关闭。
- 目录权限问题:确保数据目录 /var/lib/mongo 与日志目录 /var/log/mongodb 归属 mongod 用户(安装包通常会自动创建并设定)。
- 进阶部署:需要高可用与水平扩展时,可搭建 副本集 或 分片集群(配置 configsvr/shardsvr 角色与对应端口)。