Linux环境下MongoDB配置的核心要点
/var/lib/mongodb)和日志目录(如/var/log/mongodb),并将所有权赋予MongoDB运行用户(通常为mongodb),确保进程对目录有读写权限。示例命令:sudo mkdir -p /var/lib/mongodb /var/log/mongodb && sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb。apt、CentOS/RHEL的yum)安装MongoDB,避免手动编译的依赖问题。安装前需导入MongoDB官方GPG密钥并添加仓库(如Ubuntu的deb [arch=amd64,arm64] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse)。storage.dbPath(数据存储目录)和systemLog.path(日志文件路径),启用日志追加模式(systemLog.logAppend: true)。net.bindIp指定监听IP(如0.0.0.0允许所有IP访问,生产环境建议限制为特定IP),设置net.port(默认27017)。security.authorization: enabled),强制用户通过账号密码访问数据库。storage.wiredTiger.engineConfig.cacheSizeGB,建议为物理内存的50%)。systemctl命令管理MongoDB服务,启动服务(sudo systemctl start mongod),设置开机自启(sudo systemctl enable mongod)。通过systemctl status mongod检查服务状态。admin角色)并分配权限。示例命令:use admin;
db.createUser({ user: "admin", pwd: "yourStrongPassword", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase"] });
```。
27017),Ubuntu使用ufw allow 27017,CentOS使用firewall-cmd --add-port=27017/tcp --permanent && firewall-cmd --reload;若启用SELinux,需调整策略(如setenforce 0临时关闭或配置正确上下文)。ulimit -n 64000)、启用大页(echo 1 > /proc/sys/vm/nr_hugepages)、优化脏页刷新(echo 100 > /proc/sys/vm/dirty_background_ratio)。net.maxIncomingConnections(最大连接数,默认1万,可根据并发量调整)、operationProfiling.mode(慢查询监控,设为slowOp并配置slowms阈值,如20ms)。db.collection.createIndex({ field: 1 })),避免全表扫描,提升查询效率。rs.initiate({ _id: "rs0", members: [{ _id: 0, host: "mongo1:27017" }, { _id: 1, host: "mongo2:27017" }, { _id: 2, host: "mongo3:27017" }] });
```。
mongostat(监控操作速率)、mongotop(监控集合级读写时间)实时查看性能;开启慢查询日志(db.setProfilingLevel(1, { slowms: 20 }))定位性能瓶颈。mongodump(逻辑备份)和mongorestore(恢复)工具定期备份数据,建议每日增量备份+每周全量备份。