根据需求配置Ubuntu MongoDB可按以下步骤操作,核心步骤包括安装、基础配置、安全设置及优化:
一、基础安装
-
导入公钥并添加源
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - # 替换为对应版本密钥 echo "deb [arch=amd64,arm64] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list sudo apt update注:
$(lsb_release -cs)会自动匹配Ubuntu版本(如22.04为jammy)。 -
安装MongoDB
sudo apt install -y mongodb-org
二、核心配置
-
修改配置文件
编辑/etc/mongod.conf,按需调整以下参数:- 数据与日志路径:
storage: dbPath: /var/lib/mongodb # 数据存储目录(需提前创建并授权) systemLog: path: /var/log/mongodb/mongod.log # 日志路径 - 网络绑定:
net: bindIp: 0.0.0.0 # 允许所有IP访问(生产环境建议限制为特定IP) port: 27017 # 监听端口(默认27017,可自定义) - 安全认证:
security: authorization: enabled # 启用用户权限认证
- 数据与日志路径:
-
创建数据目录并授权
sudo mkdir -p /var/lib/mongodb sudo chown -R mongodb:mongodb /var/lib/mongodb
三、安全与权限配置
-
启用认证并创建管理员用户
- 重启服务使认证生效:
sudo systemctl restart mongod - 进入MongoDB Shell创建管理员:
mongo use admin db.createUser({ user: "admin", pwd: "yourStrongPassword", roles: [{ role: "root", db: "admin" }] }) exit
- 重启服务使认证生效:
-
限制IP访问(可选)
在配置文件中设置bindIp为特定IP(如服务器公网IP),或通过防火墙(如ufw)限制端口访问:sudo ufw allow from <允许的IP> to any port 27017 sudo ufw deny 27017 # 拒绝其他IP访问
四、性能优化(可选)
-
调整内核参数
# 增加文件描述符限制 ulimit -n 64000 # 启用大页内存(需内核支持) echo "vm.nr_hugepages=1000" | sudo tee -a /etc/sysctl.conf sudo sysctl -p -
配置分片与副本集(大规模场景)
- 分片:在配置文件中设置
sharding.clusterRole: shardsvr,并搭配mongos路由服务。 - 副本集:配置
replication.replSetName,通过rs.initiate()初始化副本集。
- 分片:在配置文件中设置
五、验证与维护
- 检查服务状态:
sudo systemctl status mongod - 连接测试:
mongo -u admin -p yourStrongPassword --authenticationDatabase admin - 备份与监控:
- 备份:
mongodump --out /backup/path - 监控:使用
mongostat或mongotop命令。
- 备份:
注意事项
- 生产环境务必启用认证(
security.authorization: enabled)并限制IP访问。 - 根据数据量选择合适的存储引擎(如WiredTiger,默认支持高并发)。
- 定期更新MongoDB版本以获取安全补丁和性能优化。
参考来源: