通过MongoDB官方YUM仓库安装,避免第三方源的兼容性问题,且便于后续版本升级。创建仓库文件/etc/yum.repos.d/mongodb-org.repo(以MongoDB 6.0为例),内容如下:
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
使用sudo yum install -y mongodb-org安装,安装完成后启动服务并设置开机自启:
sudo systemctl start mongod
sudo systemctl enable mongod
验证状态:sudo systemctl status mongod(显示active (running)即为成功)。
默认情况下,MongoDB仅绑定到127.0.0.1(本地访问)。若需远程访问,修改配置文件/etc/mongod.conf中的bindIp:
net:
bindIp: 0.0.0.0 # 允许所有IP访问(生产环境建议限制为特定IP)
port: 27017 # 默认端口,可根据需求修改
修改后重启服务:sudo systemctl restart mongod。
防火墙设置:若启用firewalld,开放27017端口:
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
安全提醒:生产环境应将bindIp设置为服务器实际IP(如192.168.1.100),避免暴露给公网。
MongoDB默认无认证,需开启授权并创建管理员账户:
/etc/mongod.conf,添加security.authorization: enabled:security:
authorization: enabled # 启用用户权限控制
重启服务使配置生效:sudo systemctl restart mongod。mongo shell登录,执行以下命令(替换your_password为强密码):use admin
db.createUser({
user: "admin",
pwd: "your_password",
roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
})
bindIp设置为特定IP,连接时需指定用户名和密码:mongo -u admin -p your_password --authenticationDatabase admin
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 4 # 根据服务器内存调整(如8GB内存可设为4GB)
articles集合的title字段创建升序索引:db.articles.createIndex({ title: 1 }) // 1表示升序,-1表示降序
复合索引(多字段)适用于多条件查询,如author_id和created_at的组合:db.articles.createIndex({ author_id: 1, created_at: -1 })
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
logRotate: reopen # 日志轮转方式(默认支持)
net:
maxIncomingConnections: 5000
/etc/mongod.conf,添加replication.replSetName(如rs0):replication:
replSetName: rs0
sudo systemctl restart mongod。mongo shell中执行):rs.initiate()
secondary_node_ip为从节点IP):rs.add("secondary_node_ip:27017")
config servers(配置服务器)、shard servers(分片服务器)和mongos(路由服务器),步骤较复杂,建议参考MongoDB官方文档。mongostat(实时监控操作频率)和mongotop(监控集合级读写时间)工具:mongostat # 每秒显示操作次数、延迟等指标
mongotop # 显示每个集合的读写时间(默认1秒刷新)
/etc/mongod.conf:operationProfiling:
mode: slowOp # 记录慢查询
slowOpThresholdMs: 100 # 慢查询阈值(单位:毫秒,默认100ms)
以上技巧覆盖了MongoDB在CentOS上的安装、网络、安全、性能、高可用及监控等核心环节,可根据实际业务需求调整配置参数。