网络知识
MongoDB配置Ubuntu有哪些最佳实践
2025-07-12 15:57  点击:0

在Ubuntu上配置MongoDB时,遵循以下最佳实践可以帮助确保其高效、安全地运行:

安装MongoDB
    导入MongoDB公钥:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
    创建MongoDB源列表文件:
echo "deb [ archamd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
    更新软件包列表:
sudo apt-get update
    安装MongoDB:
sudo apt-get install -y mongodb-org
配置MongoDB
    编辑MongoDB配置文件:
sudo nano /etc/mongod.conf
    修改配置参数:
bind_ip:设置为 0.0.0.0 以允许从任意IP地址连接。port:设置为 MongoDB 服务器监听的端口号(默认为27017)。security.authorization:启用身份验证(如果需要)。

例如:

net:port: 27017bindIp: 0.0.0.0security:authorization: enabled
    保存并关闭文件。重启MongoDB服务以使配置生效:
sudo systemctl restart mongod
启动和停止MongoDB服务
    启动MongoDB服务:
sudo systemctl start mongod
    停止MongoDB服务:
sudo systemctl stop mongod
    重启MongoDB服务:
sudo systemctl restart mongod
    检查MongoDB服务状态:
sudo systemctl status mongod
验证安装
    连接到MongoDB:
mongo
    检查数据库列表:
show dbs
    切换到某个数据库并查看集合:
use mydbshow collections
配置MongoDB以安全地运行
    启用身份验证:

在配置文件中添加或修改以下内容:

security:authorization: enabled
    创建管理员用户:

切换到MongoDB shell:

mongo

切换到 admin 数据库:

use admin

创建一个管理员用户并授予其 root 角色:

db.createUser({user: "yourAdminUsername",pwd: "yourAdminPassword",roles: [ { role: "root", db: "admin" } ]})

退出MongoDB shell:

exit()
性能优化
    调整内存和磁盘配置,确保服务器有足够的内存和快速的磁盘。为经常用于查询的字段创建索引,以提高查询性能。使用MongoDB自带的工具 mongostatmongotop 监控数据库性能。
安全配置
    禁用透明大页面(THP):
sudo nano /etc/systemd/system/disable-thp.service

内容:

[Unit]Description = Disable Transparent Huge Pages (THP)[Service]Type = simpleExecStart = /bin/sh -c "echo 'never' /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' /sys/kernel/mm/transparent_hugepage/defrag"[Install]WantedBy = multi-user.target

重新加载并启用服务:

sudo systemctl daemon-reloadsudo systemctl enable --now disable-thp.service
    设置MongoDB用户的资源限制:
sudo nano /etc/security/limits.d/mongodb.conf

内容:

mongod soft nproc 64000mongod hard nproc 64000mongod soft nofile 64000mongod hard nofile 64000
    启用MongoDB认证并创建管理员用户:
mongoshuse admindb.createUser({user: "admin",pwd : "yourAdminPassword",roles: [ { role: "userAdminAnyDatabase" , db: "admin" } ]})

通过以上步骤和最佳实践,您可以在Ubuntu上成功安装、配置、启动和验证MongoDB,并确保其高效和安全地运行。请根据您的实际需求调整配置,例如设置身份验证、指定数据存储路径等。