在如今的开发环境中,MongoDB 已成为最流行的 NoSQL 数据库之一。它以其灵活的数据模型、高性能以及易于扩展的特性,广泛应用于各种应用场景中。对于使用 CentOS 操作系统的用户来说,安装 MongoDB 是一个常见需求。本文将详细介绍在 CentOS 系统下如何安装 MongoDB,涵盖从准备环境到配置服务的完整流程,并提供一些实用技巧和注意事项,帮助你顺利部署 MongoDB 数据库。

一、MongoDB 简介与选择 CentOS 的原因

MongoDB 是一个基于文档的 NoSQL 数据库,它支持动态模式,允许用户在不预定义数据结构的情况下存储和查询数据。这种灵活性使其非常适合处理非结构化或半结构化的数据,比如日志、用户行为分析等场景。

CentOS 是一个基于 Red Hat 的 Linux 发行版,以其稳定性、安全性以及对服务器环境的优化而广受好评。它广泛用于企业级服务器部署,因此在 CentOS 上安装 MongoDB 是一个非常合理的选择。

二、MongoDB 安装前的准备工作

在开始安装之前,确保你的系统满足以下条件:

  • 操作系统版本:CentOS 7 或 CentOS 8(推荐使用较新的版本以获得更好的兼容性)
  • 网络连接:确保系统能够访问互联网,以便下载 MongoDB 的安装包
  • root 权限:你需要具有 root 或 sudo 权限来执行安装操作
  • 防火墙设置:默认情况下,CentOS 的防火墙(firewalld)是开启的。如果你计划通过网络访问 MongoDB 服务,需要开放相应的端口(默认为27017)

三、MongoDB 安装方法一:使用官方仓库安装

这是推荐的安装方式,因为通过官方仓库可以确保你获取的是最新、稳定版本的 MongoDB,并且能够方便地进行更新。

步骤 1:添加 MongoDB 官方仓库

首先,你需要将 MongoDB 的官方仓库添加到系统的软件源中。具体步骤如下:

# 导入 MongoDB 的 GPG 密钥(适用于 CentOS 7)
sudo rpm --import https://mirrors.aliyun.com/mongodb/repo/redhat/6/x86_64/MongoDB-GPG-Key-1.0

# 创建 MongoDB 的仓库配置文件
sudo vi /etc/yum.repos.d/mongodb.repo

# 在文件中添加以下内容(根据你的 CentOS 版本选择对应的仓库)
[mongodb]
name=MongoDB Repository
baseurl=https://mirrors.aliyun.com/mongodb/repo/redhat/7/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://mirrors.aliyun.com/mongodb/repo/redhat/6/x86_64/MongoDB-GPG-Key-1.0

注意:如果你使用的是 CentOS 8,仓库地址应改为 https://mirrors.aliyun.com/mongodb/repo/redhat/8/x86_64/

步骤 2:更新软件包索引

sudo yum makecache

步骤 3:安装 MongoDB

sudo yum install -y mongodb-org

mongodb-org 是 MongoDB 的官方包,包含了 MongoDB 服务的安装文件。

步骤 4:启动并设置开机自启

sudo systemctl start mongod
sudo systemctl enable mongod

步骤 5:验证安装是否成功

sudo systemctl status mongod

如果输出为 active (running),说明 MongoDB 服务已经成功启动。

步骤 6:访问 MongoDB Shell

mongo

如果能够进入 MongoDB> 命令行界面,说明安装成功。

四、MongoDB 安装方法二:手动下载安装包(适用于特定需求)

如果你希望使用某个特定版本的 MongoDB,或者需要离线安装,可以手动下载安装包并进行解压和配置。

步骤 1:下载 MongoDB 安装包

访问 MongoDB 官方下载页面,选择你想要的版本并下载。

步骤 2:解压安装包

tar -zxvf mongodb-linux-x86_64-<version>.tgz

解压后会得到一个 mongodb 目录,其中包含 bin 文件夹(包含 MongoDB 的可执行文件)。

步骤 3:创建安装目录并移动文件

sudo mkdir -p /usr/local/mongodb
sudo mv mongodb/* /usr/local/mongodb/

步骤 4:设置环境变量

编辑 ~/.bashrc 文件,添加以下内容:

export PATH=/usr/local/mongodb/bin:$PATH

保存文件后执行:

source ~/.bashrc

步骤 5:配置 MongoDB 数据目录和日志文件

创建以下目录:

sudo mkdir -p /data/db

并设置权限:

sudo chown -R mongodb:mongodb /data/db

步骤 6:启动 MongoDB

mongod --dbpath=/data/db

如果一切正常,MongoDB 服务将启动,并且你可以通过 mongo 命令进入交互式 Shell。

五、MongoDB 的常用配置与优化

1. 配置文件的设置(mongod.conf

MongoDB 的主要配置文件为 /etc/mongod.conf,你可以通过修改这个文件来调整 MongoDB 的运行参数。

sudo vi /etc/mongod.conf

常见配置项包括:

  • storage.dbPath: 数据存储目录(默认为 /var/lib/mongodb
  • storage journaling: 是否启用日志记录(建议开启以提高数据安全性)
  • net.port: MongoDB 服务监听的端口(默认为27017)
  • net.bindIp: 绑定的 IP 地址(默认为 127.0.0.1,如果你需要远程访问,可以改为 0.0.0.0

2. 防火墙设置(开放端口)

如果你计划从远程访问 MongoDB,需要在防火墙中开放27017端口:

sudo firewall-cmd --permanent --add-port=27017/tcp
sudo firewall-cmd --reload

3. 日志配置

MongoDB 的日志文件默认位于 /var/log/mongodb/ 目录下。你可以通过配置 logPath 来指定日志文件的路径。

4. 系统资源限制

在生产环境中,建议调整系统对 MongoDB 的内存和文件描述符限制:

sudo vi /etc/security/limits.conf

# 添加以下内容
mongod soft nofile 65536
mongod hard nofile 131072
sudo vi /etc/sysctl.conf

# 添加以下内容
vm.swappiness = 10

保存后执行:

sudo sysctl -p

六、MongoDB 的常用命令与操作

1. 启动和停止 MongoDB 服务

sudo systemctl start mongod    # 启动服务
sudo systemctl stop mongod     # 停止服务
sudo systemctl restart mongod  # 重启服务

2. 查看 MongoDB 服务状态

sudo systemctl status mongod

3. 进入 MongoDB Shell

mongo

4. 创建数据库和集合

在 MongoDB 中,数据库和集合是动态创建的。你可以通过以下命令创建一个数据库并插入文档:

use myDatabase
db.createCollection("users")
db.users.insertOne({ name: "张三", age: 25 })

5. 查询数据

db.users.find().pretty()

6. 查看所有数据库和集合

show dbs
use myDatabase
show collections

七、常见问题与解决方案

1. 启动失败:mongod: command not found

这通常是因为没有正确设置环境变量或未安装 MongoDB。

解决方法:检查 PATH 环境变量是否包含 MongoDB 的安装目录,或者重新运行安装命令。

2. 启动失败:couldn't determine data directory

这通常是因为数据目录未正确配置或权限不足。

解决方法:检查 /etc/mongod.conf 中的 storage.dbPath 设置,并确保该目录具有正确的权限。

3. 防火墙阻止访问

如果你无法从远程连接 MongoDB,可能是防火墙限制了端口。

解决方法:按照前面提到的步骤开放27017端口。

4. 内存不足或性能问题

如果系统内存不足,可能导致 MongoDB 运行缓慢。

解决方法:可以调整 mongod.conf 中的 storage.journaling 设置为 false,或增加系统内存限制。

八、MongoDB 的备份与恢复

1. 备份数据(使用 mongodump

mongodump --db myDatabase --out /backup/

这会将 myDatabase 数据库备份到 /backup/ 目录。

2. 恢复数据(使用 mongorestore

mongorestore --db myDatabase --drop /backup/myDatabase/

这会将备份的数据恢复到 myDatabase 数据库中。

九、MongoDB 的安全配置建议

1. 禁止远程访问(仅限开发环境)

mongod.conf 中,将 net.bindIp 设置为 127.0.0.1 可以防止外部访问。

2. 启用身份验证(生产环境)

在 MongoDB 中启用身份验证可以提高安全性。具体步骤如下:

  • 创建管理员用户
use admin
db.createUser({ user: "admin", pwd: "123456", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
  • 修改 mongod.conf,在配置中添加:
security:
  authorization: enabled
  • 重启 MongoDB

3. 使用 SSL 加密通信(推荐)

对于生产环境,建议启用 SSL/TLS 来加密 MongoDB 的通信。具体配置可以参考官方文档。

十、总结

在 CentOS 系统上安装 MongoDB 是一个相对简单但重要的过程。通过官方仓库安装可以确保你获得最新的稳定版本,而手动下载则适用于特定需求。无论哪种方式,都需要注意配置文件、权限设置以及防火墙规则的调整。

在实际使用中,建议根据项目需求选择合适的安装方式,并结合安全配置、备份机制以及性能优化来提升 MongoDB 的稳定性和安全性。希望本文能够帮助你顺利完成 MongoDB 安装,并在开发中高效使用这个强大的 NoSQL 数据库。