在 Oracle Linux 8 中安装和配置 MongoDB

本文将介绍如何在 Oracle Linux 8 操作系统中安装和配置 MongoDB,以及如何使用一些基本的命令操作数据库。

发布于

MongoDB 是一种流行的开源文档型数据库,它使用 JSON 格式存储数据,支持灵活的查询和索引,适合处理大量的非结构化数据。本文将介绍如何在 Oracle Linux 8 操作系统中安装和配置 MongoDB,以及如何使用一些基本的命令操作数据库。

本文的目的是为了帮助您快速地在 Oracle Linux 8 中部署 MongoDB,并了解其基本的使用方法。如果您想了解更多的 MongoDB 的功能和用法,您可以参考 MongoDB 文档

先决条件

在开始安装和配置 MongoDB 之前,您需要满足以下条件:

  • 您的操作系统是 Oracle Linux 8 或更高版本。
  • 您已经安装了 dnf 包管理器,用于下载和安装软件包。
  • 您有足够的磁盘空间和内存来运行 MongoDB。
  • 您有一个具有 sudo 权限的用户账户,用于执行需要管理员权限的命令。

添加 MongoDB 仓库

为了从官方源安装 MongoDB,您需要先添加 MongoDB 仓库到您的系统。您可以使用以下命令来添加 MongoDB 仓库:

sudo tee /etc/yum.repos.d/mongodb-org-5.0.repo << EOF
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
EOF

这个命令会创建一个名为 mongodb-org-5.0.repo 的新文件,并写入 MongoDB 仓库的信息。您可以使用 dnf repolist 命令来查看您的系统中已有的仓库列表。

安装 MongoDB

在添加了 MongoDB 仓库之后,您可以使用 dnf install 命令来安装 MongoDB。您可以使用以下命令来安装 MongoDB:

sudo dnf install -y mongodb-org

这个命令会安装 MongoDB 的最新稳定版本,以及一些相关的工具和依赖包。您可以使用 --nogpgcheck 选项来避免验证 GPG 密钥。您也可以使用 --releasever 选项来指定安装特定的版本,例如 --releasever 5.0.3

安装完成后,您可以使用 mongod --version 命令来查看 MongoDB 的版本信息。

配置 MongoDB

在安装了 MongoDB 之后,您需要对其进行一些基本的配置,以便正常运行。您可以使用以下步骤来配置 MongoDB:

  • 创建数据目录:MongoDB 默认使用 /var/lib/mongo 目录来存储数据文件,您需要确保该目录存在并且有正确的权限。您可以使用以下命令来创建数据目录:

    sudo mkdir -p /var/lib/mongo
    sudo chown -R mongod:mongod /var/lib/mongo
    
  • 创建日志目录:MongoDB 默认使用 /var/log/mongodb 目录来存储日志文件,您需要确保该目录存在并且有正确的权限。您可以使用以下命令来创建日志目录:

    sudo mkdir -p /var/log/mongodb
    sudo chown -R mongod:mongod /var/log/mongodb
    
  • 编辑配置文件:MongoDB 使用 /etc/mongod.conf 文件来存储配置选项,您可以使用任意的文本编辑器来修改该文件。您可以根据您的需求来调整配置选项,例如设置绑定的 IP 地址,启用认证,开启 SSL 等。您可以参考 MongoDB 文档 来了解更多的配置选项。

启动 MongoDB

在完成了配置之后,您可以使用 systemctl 命令来启动 MongoDB 服务。您可以使用以下命令来启动 MongoDB:

sudo systemctl start mongod

您可以使用 systemctl status mongod 命令来查看 MongoDB 的运行状态。您也可以使用 systemctl enable mongod 命令来设置 MongoDB 在系统启动时自动运行。

设置初始密码

为了提高 MongoDB 的安全性,您可以启用认证功能,这样只有拥有正确的用户名和密码的用户才能访问数据库。您可以使用以下步骤来设置初始密码:

  • 连接到 MongoDB:您可以使用 mongo 命令来连接到 MongoDB,不需要指定任何参数。您会看到一个类似于 > 的提示符,表示您已经进入了 MongoDB 的交互式 shell。

  • 切换到 admin 数据库:您可以使用 use admin 命令来切换到 admin 数据库,这是 MongoDB 的默认的管理数据库。

  • 创建管理员用户:您可以使用 db.createUser() 函数来创建一个管理员用户,该用户拥有对所有数据库的读写权限。您需要指定用户名,密码,和角色。例如,您可以使用以下命令来创建一个名为 admin,密码为 password 的管理员用户:

    db.createUser({ user: "admin", pwd: "password", roles: ["root"] })
    
  • 退出 MongoDB:您可以使用 exit 命令来退出 MongoDB 的交互式 shell。

  • 重新启动 MongoDB:您需要重新启动 MongoDB 服务,以使认证功能生效。您可以使用以下命令来重新启动 MongoDB:

    sudo systemctl restart mongod
    
  • 重新连接到 MongoDB:您可以使用 mongo 命令来重新连接到 MongoDB,但是这次您需要指定用户名,密码,和认证数据库。例如,您可以使用以下命令来重新连接到 MongoDB:

    mongo -u admin -p password --authenticationDatabase admin
    

验证安装

为了验证 MongoDB 是否安装成功,您可以使用一些简单的命令来操作数据库。您可以使用以下命令来验证安装:

  • 查看数据库列表:您可以使用 show dbs 命令来查看 MongoDB 中已有的数据库列表。您应该能看到 adminconfig,和 local 这三个数据库。

  • 创建新的数据库:您可以使用 use 命令来创建一个新的数据库,如果该数据库不存在,MongoDB 会自动创建它。例如,您可以使用以下命令来创建一个名为 test 的数据库:

    use test
    
  • 插入文档:您可以使用 db.collection.insertOne() 函数来向一个集合中插入一个文档,如果该集合不存在,MongoDB 会自动创建它。例如,您可以使用以下命令来向 test 数据库中的 users 集合中插入一个文档:

    db.users.insertOne({ name: "Alice", age: 25, email: "[email protected]" })
    
  • 查询文档:您可以使用 db.collection.find() 函数来从一个集合中查询文档,您可以指定一个过滤条件来匹配特定的文档。例如,您可以使用以下命令来从 test 数据库中的 users 集合中查询年龄为 25 的文档:

    db.users.find({ age: 25 })
    
  • 删除文档:您可以使用 db.collection.deleteOne() 函数来从一个集合中删除一个文档,您可以指定一个过滤条件来匹配特定的文档。例如,您可以使用以下命令来从 test 数据库中的 users 集合中删除姓名为 Alice 的文档:

    db.users.deleteOne({ name: "Alice" })
    
  • 删除数据库:您可以使用 db.dropDatabase() 函数来删除当前的数据库,这会删除数据库中的所有集合和文档。例如,您可以使用以下命令来删除 test 数据库:

    use test
    db.dropDatabase()
    
  • 导出数据:您可以使用 mongodump 命令来导出 MongoDB 中的数据,您可以指定一个目标目录来存储导出的数据。例如,您可以使用以下命令来导出 MongoDB 中的所有数据,并将其存储在 /backup 目录中:

    mongodump --out /backup
    
  • 导入数据:您可以使用 mongorestore 命令来导入 MongoDB 中的数据,您可以指定一个源目录来读取导入的数据。例如,您可以使用以下命令来导入 /backup 目录中的所有数据,并将其恢复到 MongoDB 中:

    mongorestore /backup
    
  • 备份数据:您可以使用 mongoexport 命令来备份 MongoDB 中的数据,您可以指定一个输出文件来存储备份的数据。您也可以指定一个过滤条件来备份特定的数据。例如,您可以使用以下命令来备份 test 数据库中的 users 集合中的所有数据,并将其存储在 users.json 文件中:

    mongoexport --db test --collection users --out users.json
    
  • 恢复数据:您可以使用 mongoimport 命令来恢复 MongoDB 中的数据,您可以指定一个输入文件来读取恢复的数据。您也可以指定一个目标数据库和集合来恢复特定的数据。例如,您可以使用以下命令来恢复 users.json 文件中的所有数据,并将其导入到 test 数据库中的 users 集合中:

    mongoimport --db test --collection users --file users.json
    

结论

本文介绍了如何在 Oracle Linux 8 操作系统中安装和配置 MongoDB,以及如何使用一些基本的命令操作数据库。您可以使用 MongoDB 来存储和处理大量的非结构化数据,以满足您的业务需求。您可以参考 MongoDB 文档 来了解更多的 MongoDB 的功能和用法。