本文最后更新于 1 分钟前,文中所描述的信息可能已发生改变。
本文详细介绍如何在 Ubuntu 系统上使用 apt 软件包管理器安装 MongoDB Community Edition 5.0 版本,以及基本的配置和用户管理操作。
安装 MongoDB Community Edition
1. 导入公钥
首先,从终端安装 gnupg
和 curl
(如果尚未安装):
sudo apt-get install gnupg curl
导入 MongoDB 公共 GPG 密钥:
curl -fsSL https://www.mongodb.org/static/pgp/server-5.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-5.0.gpg \
--dearmor
2. 创建列表文件
根据您的 Ubuntu 版本创建相应的列表文件 /etc/apt/sources.list.d/mongodb-org-5.0.list
。
Ubuntu 20.04 (Focal):
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-5.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
Ubuntu 18.04 (Bionic):
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-5.0.gpg ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
3. 重新加载包数据库
执行以下命令重新加载本地软件包数据库:
sudo apt-get update
4. 安装 MongoDB Community Server
安装特定版本
要安装特定版本(推荐),必须单独指定每个组件包以及版本号:
sudo apt-get install -y mongodb-org=5.0.29 mongodb-org-database=5.0.29 mongodb-org-server=5.0.29 mongodb-org-shell=5.0.29 mongodb-org-mongos=5.0.29 mongodb-org-tools=5.0.29
注意: 如果仅安装
mongodb-org=5.0.29
而不包含组件包,则无论您指定哪个版本,都将安装每个 MongoDB 包的最新版本。
防止意外升级(可选)
虽然您可以指定任意可用版本的 MongoDB,但当有新版本可用时,apt-get
仍会升级这些包。要防止意外升级,可将包固定到当前安装的版本:
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-database hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-mongosh hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections
运行 MongoDB Community Edition
ulimit 注意事项
大多数类 Unix 操作系统都会限制进程可以使用的系统资源。这些限制可能会对 MongoDB 操作产生负面影响,应该进行调整。
警告: 如果打开文件数的 ulimit 值低于 64000,MongoDB 会生成启动警告。
重要目录说明
- 数据目录:
/var/lib/mongodb
- 日志目录:
/var/log/mongodb
- 配置文件:
/etc/mongod.conf
默认情况下,MongoDB 使用 mongodb
用户账户运行。如果更改运行 MongoDB 进程的用户,您还必须修改数据和日志目录以赋予该用户访问这些目录的权限。
注意: 配置文件中的设置将在启动时生效。如果在 MongoDB 实例运行时更改该配置文件,则必须重新启动实例才能使更改生效。
确定初始化系统
运行以下命令确定您的系统使用的初始化系统:
ps --no-headers -o comm 1
- 如果输出为
systemd
,使用systemctl
命令 - 如果输出为
init
,使用service
命令
使用 systemd 管理 MongoDB
1. 启动 MongoDB
sudo systemctl start mongod
如果收到错误 Failed to start mongod.service: Unit mongod.service not found.
,首先运行:
sudo systemctl daemon-reload
然后再次运行启动命令。
2. 验证 MongoDB 是否成功启动
sudo systemctl status mongod
3. 设置开机自启动(可选)
确保 MongoDB 将在系统重新启动后自动启动:
sudo systemctl enable mongod
4. 停止 MongoDB
sudo systemctl stop mongod
5. 重启 MongoDB
sudo systemctl restart mongod
日志监控
通过观察日志文件可以跟踪错误或重要消息的进程状态:
tail -f /var/log/mongodb/mongod.log
开始使用 MongoDB
连接到 MongoDB
在与 mongod 相同的主机上启动 mongosh 会话:
mongosh
这将连接到在本地主机上运行且默认端口号为 27017 的 mongod。
创建管理员用户
首先连接到 admin 数据库并创建管理员用户:
use admin
db.createUser({
user: "admin",
pwd: "your_secure_password",
roles: [
{ role: "root", db: "admin" },
]
})
启用身份验证
编辑 MongoDB 配置文件:
sudo vim /etc/mongod.conf
在配置文件中添加或修改以下内容:
security:
authorization: enabled
重启 MongoDB 使配置生效:
sudo systemctl restart mongod
使用认证登录
使用创建的管理员账户登录:
mongosh -u admin -p your_secure_password --authenticationDatabase admin
或者在 mongosh 中进行认证:
mongosh
use admin
db.auth("admin", "your_secure_password")
创建应用数据库用户
为特定数据库创建用户:
use myapp
db.createUser({
user: "myapp_user",
pwd: "myapp_password",
roles: [
{ role: "readWrite", db: "myapp" }
]
})
常用管理命令
查看所有数据库
show dbs
查看当前数据库的用户
use admin
db.getUsers()
删除用户
use admin
db.dropUser("username")
修改用户密码
use admin
db.changeUserPassword("username", "new_password")
安全建议
- 强密码策略: 为所有用户设置强密码
- 最小权限原则: 仅授予用户所需的最小权限
- 网络访问控制: 配置防火墙规则,限制 MongoDB 的访问
- 定期备份: 建立定期备份机制
- 更新维护: 定期更新 MongoDB 到最新的稳定版本
故障排查
服务无法启动
检查日志文件:
sudo tail -n 50 /var/log/mongodb/mongod.log
权限问题
确保数据目录和日志目录的权限正确:
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb
端口被占用
检查端口 27017 是否被占用:
sudo lsof -i :27017
总结
本文介绍了在 Ubuntu 系统上安装和配置 MongoDB Community Edition 5.0 的完整流程,包括:
- 通过 apt 包管理器安装 MongoDB
- 使用 systemd 管理 MongoDB 服务
- 配置身份验证和用户管理
- 基本的安全配置建议
正确安装和配置 MongoDB 是构建可靠数据库服务的基础,建议在生产环境中根据实际需求进行更详细的安全加固和性能优化。