以下是MongoDB在CentOS上的配置技巧,涵盖安装、优化及安全等方面:
配置YUM仓库
创建/etc/yum.repos.d/mongodb-org.repo
文件,添加官方源(以MongoDB 7.0为例):
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-7.0.asc
执行sudo yum install -y mongodb-org
安装。
创建目录并授权
sudo mkdir -p /data/mongodb/{data,log}
sudo chown -R mongod:mongod /data/mongodb
(若使用默认路径可跳过)
修改配置文件
编辑/etc/mongod.conf
,关键参数:
dbPath
和log.path
(建议自定义路径并确保权限)。bindIp: 0.0.0.0
(允许远程访问,生产环境建议限制为具体IP)。27017
,可按需修改。WiredTiger
(默认,性能更优)。启动服务
sudo systemctl start mongod
sudo systemctl enable mongod # 开机自启
sudo systemctl status mongod # 检查状态
内存配置
在/etc/mongod.conf
中设置WiredTiger缓存大小(建议为服务器内存的50%-70%):
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 8 # 根据服务器内存调整
日志与磁盘优化
systemLog.verbosity: 1
(生产环境建议warning
或error
)。logRotate
为rename
并设置maxSize
。索引优化
db.collection.createIndex({ field: 1 })
。启用身份验证
security.authorization: enabled
。mongo
use admin
db.createUser({ user: "admin", pwd: "密码", roles: ["root"] })
防火墙与网络
sudo firewall-cmd --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
bindIp
为具体IP,避免暴露在公网。副本集配置
replication.replSetName: "rs0"
。rs.initiate()
初始化副本集。分片集群(大规模数据)
sh.addShard()
添加分片。sudo setenforce 0
,或修改/etc/selinux/config
永久禁用。mongodump
工具定期备份数据。mongostat
、mongotop
或第三方工具(如Prometheus+Grafana)监控性能。参考来源: