1. 准备工作
更新系统包
确保你的系统是最新的,并且安装了必要的依赖项:
-
基于 Debian 的系统(如 Ubuntu)
sudo apt update && sudo apt upgrade -y
-
基于 Red Hat 的系统(如 CentOS 或 Fedora)
对于 CentOS 7 及更早版本:
sudo yum update -y
对于 Fedora 和 CentOS 8 及更高版本:
sudo dnf update -y
2. 导入 MongoDB 公钥
为了验证从官方仓库下载的软件包,你需要导入 MongoDB 的公钥:
-
基于 Debian 的系统(如 Ubuntu)
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
-
基于 Red Hat 的系统(如 CentOS 或 Fedora)
sudo rpm --import https://www.mongodb.org/static/pgp/server-6.0.asc
3. 设置 MongoDB 仓库
接下来,设置 MongoDB 稳定版仓库。创建一个新的 APT 源列表文件或编辑现有的 YUM 库配置。
基于 Debian 的系统(如 Ubuntu)
编辑 /etc/apt/sources.list.d/mongodb-org-6.0.list
文件,添加如下内容:
deb [arch=amd64,arm64] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse
请注意将 focal
替换为与你使用的 Ubuntu 版本相匹配的代号(例如 bionic、xenial 等),并且根据你的架构选择 amd64
或 arm64
。
然后更新包索引:
sudo apt update
基于 Red Hat 的系统(如 CentOS 或 Fedora)
编辑 /etc/yum.repos.d/mongodb-org-6.0.repo
文件,添加如下内容:
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
4. 安装 MongoDB
现在可以从官方仓库安装 MongoDB:
-
基于 Debian 的系统(如 Ubuntu)
sudo apt install mongodb-org
-
基于 Red Hat 的系统(如 CentOS 或 Fedora)
sudo yum install -y mongodb-org # 或者对于 dnf sudo dnf install -y mongodb-org
5. 配置 MongoDB
默认情况下,MongoDB 配置文件位于 /etc/mongod.conf
。你可以根据需要修改这个文件来调整 MongoDB 的行为。这里有一些常见的配置项:
-
绑定地址:默认情况下,MongoDB 仅监听本地接口。如果需要远程访问,则应修改此选项。
net: bindIp: 0.0.0.0 # 允许来自任何 IP 地址的连接;请注意,这可能会带来安全风险,请根据实际情况调整。
-
端口:更改默认的端口号(27017)。
net: port: 27017
-
日志路径:指定日志文件的位置和格式。
systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log
-
数据目录:指定存储数据库文件的位置。
storage: dbPath: /var/lib/mongodb
-
启用身份验证:如果你希望启用用户认证功能,请取消注释并设置以下参数。
security: authorization: "enabled"
保存文件后记得重启 MongoDB 服务以应用更改。
6. 启动并启用 MongoDB 服务
安装完成后,启动 MongoDB 服务,并将其设置为开机自启:
sudo systemctl start mongod
sudo systemctl enable mongod
7. 验证安装
确保 MongoDB 正常工作,可以通过命令行客户端连接到数据库服务器:
mongosh
你应该会看到 MongoDB 的交互式 shell 提示符。尝试运行 db.runCommand({ connectionStatus: 1 })
来检查当前连接状态。
8. 创建管理员用户(可选)
如果你想启用用户认证功能,可以创建一个管理员用户:
use admin
db.createUser({
user: "admin",
pwd: "your_password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
})
然后重启 MongoDB 服务,并使用新创建的用户登录:
mongosh -u "admin" -p "your_password" --authenticationDatabase "admin"
9. 设置防火墙规则
如果你的服务器上有防火墙(例如 UFW 或 firewalld),请确保开放 MongoDB 默认使用的端口(27017)。对于 UFW:
sudo ufw allow 27017/tcp
对于 firewalld:
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
10. 性能调优
根据你的应用场景和硬件条件,考虑对 MongoDB 进行性能调优。这可能涉及到调整分片数、副本集配置、索引策略等高级设置。建议参考官方文档获取更多信息。
11. 备份与恢复
定期备份 MongoDB 数据非常重要。你可以编写脚本来定期复制快照到安全的位置。此外,考虑使用云存储或其他远程存储解决方案来进行异地备份。
-
逻辑备份:使用
mongodump
工具导出数据。mongodump --out /path/to/backup
-
物理备份:直接复制数据文件夹的内容。
cp -R /var/lib/mongodb /path/to/backup/
-
恢复数据:使用
mongorestore
工具恢复逻辑备份。mongorestore --dir=/path/to/backup