在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自带的工具
mongostat
和 mongotop
监控数据库性能。- 禁用透明大页面(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,并确保其高效和安全地运行。请根据您的实际需求调整配置,例如设置身份验证、指定数据存储路径等。