MongoDB Community Edition 安装指南

本文最后更新于 1 分钟前,文中所描述的信息可能已发生改变。

本文详细介绍如何在 Ubuntu 系统上使用 apt 软件包管理器安装 MongoDB Community Edition 5.0 版本,以及基本的配置和用户管理操作。

安装 MongoDB Community Edition

1. 导入公钥

首先,从终端安装 gnupgcurl(如果尚未安装):

bash
sudo apt-get install gnupg curl

导入 MongoDB 公共 GPG 密钥:

bash
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):

bash
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):

bash
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. 重新加载包数据库

执行以下命令重新加载本地软件包数据库:

bash
sudo apt-get update

4. 安装 MongoDB Community Server

安装特定版本

要安装特定版本(推荐),必须单独指定每个组件包以及版本号:

bash
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 仍会升级这些包。要防止意外升级,可将包固定到当前安装的版本:

bash
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 实例运行时更改该配置文件,则必须重新启动实例才能使更改生效。

确定初始化系统

运行以下命令确定您的系统使用的初始化系统:

bash
ps --no-headers -o comm 1
  • 如果输出为 systemd,使用 systemctl 命令
  • 如果输出为 init,使用 service 命令

使用 systemd 管理 MongoDB

1. 启动 MongoDB

bash
sudo systemctl start mongod

如果收到错误 Failed to start mongod.service: Unit mongod.service not found.,首先运行:

bash
sudo systemctl daemon-reload

然后再次运行启动命令。

2. 验证 MongoDB 是否成功启动

bash
sudo systemctl status mongod

3. 设置开机自启动(可选)

确保 MongoDB 将在系统重新启动后自动启动:

bash
sudo systemctl enable mongod

4. 停止 MongoDB

bash
sudo systemctl stop mongod

5. 重启 MongoDB

bash
sudo systemctl restart mongod

日志监控

通过观察日志文件可以跟踪错误或重要消息的进程状态:

bash
tail -f /var/log/mongodb/mongod.log

开始使用 MongoDB

连接到 MongoDB

在与 mongod 相同的主机上启动 mongosh 会话:

bash
mongosh

这将连接到在本地主机上运行且默认端口号为 27017 的 mongod。

创建管理员用户

首先连接到 admin 数据库并创建管理员用户:

javascript
use admin

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

启用身份验证

编辑 MongoDB 配置文件:

bash
sudo vim /etc/mongod.conf

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

yaml
security:
  authorization: enabled

重启 MongoDB 使配置生效:

bash
sudo systemctl restart mongod

使用认证登录

使用创建的管理员账户登录:

bash
mongosh -u admin -p your_secure_password --authenticationDatabase admin

或者在 mongosh 中进行认证:

bash
mongosh
javascript
use admin
db.auth("admin", "your_secure_password")

创建应用数据库用户

为特定数据库创建用户:

javascript
use myapp

db.createUser({
  user: "myapp_user",
  pwd: "myapp_password",
  roles: [
    { role: "readWrite", db: "myapp" }
  ]
})

常用管理命令

查看所有数据库

javascript
show dbs

查看当前数据库的用户

javascript
use admin
db.getUsers()

删除用户

javascript
use admin
db.dropUser("username")

修改用户密码

javascript
use admin
db.changeUserPassword("username", "new_password")

安全建议

  1. 强密码策略: 为所有用户设置强密码
  2. 最小权限原则: 仅授予用户所需的最小权限
  3. 网络访问控制: 配置防火墙规则,限制 MongoDB 的访问
  4. 定期备份: 建立定期备份机制
  5. 更新维护: 定期更新 MongoDB 到最新的稳定版本

故障排查

服务无法启动

检查日志文件:

bash
sudo tail -n 50 /var/log/mongodb/mongod.log

权限问题

确保数据目录和日志目录的权限正确:

bash
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb

端口被占用

检查端口 27017 是否被占用:

bash
sudo lsof -i :27017

总结

本文介绍了在 Ubuntu 系统上安装和配置 MongoDB Community Edition 5.0 的完整流程,包括:

  • 通过 apt 包管理器安装 MongoDB
  • 使用 systemd 管理 MongoDB 服务
  • 配置身份验证和用户管理
  • 基本的安全配置建议

正确安装和配置 MongoDB 是构建可靠数据库服务的基础,建议在生产环境中根据实际需求进行更详细的安全加固和性能优化。

Arthas工具使用详解:Java诊断利器实战指南
MySQL删表操作详解:DELETE、TRUNCATE、DROP的区别与应用场景