根据需求配置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
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访问。参考来源: