MongoDB 是一款开源的 NoSQL 数据库,它采用面向文档的存储方式,具有高可扩展性、高性能以及灵活的数据模型,广泛应用于现代 Web 应用程序中。为了在 CentOS 系统上顺利安装和使用 MongoDB,本文将为您提供详细的安装步骤。无论是使用 CentOS7 还是 CentOS8,本文的步骤都适用。

一、准备工作

在开始安装 MongoDB 之前,确保您的 CentOS 系统已安装并更新到最新版本。打开终端并运行以下命令更新系统:

sudo yum update -y

这将更新系统中的所有软件包,并确保您的系统处于最新状态。另外,建议您在安装过程中使用具有管理员权限的用户(如 root 用户)执行操作。

二、安装 MongoDB 官方 YUM 仓库

MongoDB 提供了官方的 YUM 仓库来简化 CentOS 系统上的安装过程。您需要先将 MongoDB 的官方仓库添加到您的 YUM 配置中。首先,下载并安装 MongoDB 的官方仓库文件:

echo "[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-6.0.repo

此命令会将 MongoDB 官方仓库的配置信息添加到您的系统中,确保您的 CentOS 系统能够从 MongoDB 的源获取安装包。请注意,仓库 URL 中的版本号(如 "6.0")可以根据您需要的 MongoDB 版本进行修改。

三、安装 MongoDB

添加了 MongoDB 仓库后,接下来可以通过 YUM 包管理工具安装 MongoDB。使用以下命令安装 MongoDB:

sudo yum install -y mongodb-org

上述命令会安装 MongoDB 的完整软件包,包括 MongoDB 服务器、客户端工具和其他依赖包。安装完成后,您可以使用以下命令确认 MongoDB 是否安装成功:

mongod --version

如果安装成功,系统会显示 MongoDB 的版本信息。

四、启动 MongoDB 服务

安装完成后,您需要启动 MongoDB 服务。MongoDB 默认使用 systemd 来管理服务,因此可以使用以下命令启动 MongoDB 服务:

sudo systemctl start mongod

启动 MongoDB 后,您可以使用以下命令检查服务是否正在运行:

sudo systemctl status mongod

如果 MongoDB 正在正常运行,系统将显示 MongoDB 服务的状态信息,包括它的运行状态和 PID。

五、设置 MongoDB 开机自启动

为了确保 MongoDB 在系统重启后能够自动启动,您需要将 MongoDB 配置为开机自启动。使用以下命令启用 MongoDB 服务的开机自启:

sudo systemctl enable mongod

这将确保 MongoDB 在每次系统启动时自动启动,避免手动启动的麻烦。

六、防火墙配置

默认情况下,CentOS 系统启用了防火墙。如果您希望远程访问 MongoDB,需要在防火墙中打开 27017 端口,这是 MongoDB 的默认端口。可以通过以下命令开放该端口:

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

执行该命令后,记得重新加载防火墙配置以使改动生效:

sudo firewall-cmd --reload

完成后,您就可以通过远程客户端连接到 MongoDB 了。

七、配置 MongoDB 安全性

MongoDB 默认不启用认证,这意味着任何人都可以连接到数据库并执行操作。为了提高 MongoDB 的安全性,建议启用身份验证功能。您可以通过以下步骤启用 MongoDB 身份验证:

1. 编辑 MongoDB 配置文件:

sudo nano /etc/mongod.conf

2. 在配置文件中找到以下行,并取消注释(去掉前面的 #)并设置为 true:

security:
  authorization: "enabled"

3. 保存并退出编辑器。

4. 重启 MongoDB 服务以使更改生效:

sudo systemctl restart mongod

启用身份验证后,您需要为 MongoDB 创建管理员用户,以便进行身份验证和数据库操作。创建管理员用户的步骤如下:

mongo

然后在 MongoDB shell 中执行以下命令:

use admin
db.createUser({
  user: "admin",
  pwd: "password123",
  roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
})

创建完管理员用户后,您就可以使用该用户进行身份验证并访问 MongoDB 数据库了。

八、验证安装和连接 MongoDB

安装完成并配置好 MongoDB 后,您可以使用 MongoDB 的客户端工具进行连接验证。在本地连接 MongoDB,您可以运行以下命令:

mongo

如果您启用了身份验证,则需要使用管理员用户进行连接:

mongo -u admin -p password123 --authenticationDatabase admin

成功连接后,您可以使用 MongoDB shell 执行各种操作,例如查看数据库列表、添加数据等。

九、常见问题与故障排除

在安装和使用 MongoDB 的过程中,可能会遇到一些常见问题,下面列出几个常见的故障排除方法:

1. MongoDB 服务未启动

如果您无法启动 MongoDB 服务,请检查日志文件以获取更多信息:

sudo journalctl -u mongod

通过日志可以查看 MongoDB 启动失败的原因,例如端口冲突或配置错误。

2. 防火墙问题

如果您无法远程连接 MongoDB,请确保防火墙已经正确配置并开放了 27017 端口。

3. 连接拒绝

如果在使用 MongoDB 客户端连接时遇到“连接被拒绝”的错误,可能是因为 MongoDB 没有监听正确的 IP 地址。您可以编辑 MongoDB 配置文件,确保 "bindIp" 设置为 0.0.0.0 或指定的外部 IP 地址。

bindIp: 0.0.0.0

修改后记得重启 MongoDB 服务:

sudo systemctl restart mongod

十、总结

通过本文的详细步骤,您已经学会了如何在 CentOS 系统上安装、配置并启动 MongoDB。在安装过程中,务必确保正确设置防火墙、启用身份验证等安全措施,以保证 MongoDB 的稳定运行和数据安全。无论是开发环境还是生产环境,MongoDB 都是一个强大且灵活的数据库解决方案,能够为现代应用提供支持。