在 CentOS Stream 9 中安装和配置 MongoDB
本文将介绍如何在 CentOS Stream 9 系统中安装和配置 MongoDB,以及如何使用一些基本的命令来操作 MongoDB 数据库。
MongoDB 是一个开源的、跨平台的、面向文档的数据库,它使用 JSON 格式的文档来存储数据,支持灵活的查询和索引,以及分布式的架构和高可用性。MongoDB 是目前最流行的 NoSQL 数据库之一,广泛应用于各种场景,比如 Web 应用、物联网、大数据分析等。
本文将介绍如何在 CentOS Stream 9 系统中安装和配置 MongoDB,以及如何使用一些基本的命令来操作 MongoDB 数据库。
先决条件
在开始安装和配置 MongoDB 之前,您需要满足以下条件:
- 您已经安装了 CentOS Stream 9 系统,并且拥有 root 权限或 sudo 权限。
- 您已经更新了系统的软件包,并且安装了必要的依赖包,比如
wget
、curl
、gnupg
等。您可以使用以下命令来更新和安装:
sudo dnf update -y
sudo dnf install -y wget curl gnupg
- 您已经配置了 MongoDB 的官方仓库,以便从中下载和安装最新版本的 MongoDB。您可以使用以下命令来配置仓库:
cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org.repo
[mongodb-org]
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
完成了先决条件之后,您就可以开始安装 MongoDB 了。您可以使用以下命令来安装 MongoDB:
sudo dnf install -y mongodb-org
这个命令会安装 MongoDB 的最新稳定版本,以及相关的工具和服务。如果您想安装特定版本的 MongoDB,您可以在 mongodb-org
后面加上版本号,比如 mongodb-org-5.0.3
。
安装完成后,您可以使用以下命令来检查 MongoDB 的版本:
mongod --version
您应该看到类似以下的输出:
db version v5.0.3
Build Info: {
"version": "5.0.3",
"gitVersion": "657fea5a61a74d7a79df7aff8e4bcf0bc742b748",
"openSSLVersion": "OpenSSL 1.1.1k FIPS 25 Mar 2021",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "rhel80",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
配置 MongoDB
在安装 MongoDB 之后,您需要对 MongoDB 进行一些基本的配置,以便更好地使用和管理 MongoDB。
配置 MongoDB 服务
MongoDB 安装后会自动创建一个名为 mongod
的系统服务,您可以使用 systemctl
命令来管理这个服务。您可以使用以下命令来启动、停止、重启、查看状态和开机自启动这个服务:
# 启动服务
sudo systemctl start mongod
# 停止服务
sudo systemctl stop mongod
# 重启服务
sudo systemctl restart mongod
# 查看服务状态
sudo systemctl status mongod
# 开机自启动服务
sudo systemctl enable mongod
您可以使用以下命令来查看 MongoDB 服务的日志:
sudo journalctl -u mongod
MongoDB 服务的配置文件位于 /etc/mongod.conf
,您可以根据您的需求修改这个文件中的一些选项,比如 bindIp
、port
、storage
、security
等。修改配置文件后,您需要重启 MongoDB 服务才能生效。
配置 MongoDB 用户和角色
为了提高 MongoDB 的安全性,您需要为 MongoDB 创建一个管理员用户,并为其分配合适的角色。您还可以为不同的数据库和集合创建不同的用户和角色,以实现细粒度的访问控制。
您可以使用以下步骤来创建一个管理员用户:
-
启动 MongoDB 服务,并使用
mongo
命令连接到本地的 MongoDB 实例:sudo systemctl start mongod mongo
-
切换到
admin
数据库,并使用db.createUser()
方法创建一个名为admin
的用户,为其分配root
角色,以及一个强密码:use admin db.createUser( { user: "admin", pwd: "your_strong_password", roles: [ { role: "root", db: "admin" } ] } )
-
退出 MongoDB shell,并修改
/etc/mongod.conf
文件,将security.authorization
选项的值设置为enabled
,以启用身份验证:exit sudo nano /etc/mongod.conf
找到以下部分,并修改为:
security: authorization: enabled
-
重启 MongoDB 服务,并使用
mongo
命令重新连接到 MongoDB 实例,这次需要使用-u
和-p
选项指定用户名和密码,以及--authenticationDatabase
选项指定验证数据库:sudo systemctl restart mongod mongo -u admin -p your_strong_password --authenticationDatabase admin
-
您可以使用
show users
命令来查看当前数据库的用户,以及show roles
命令来查看当前数据库的角色:show users show roles
您可以参考 MongoDB 官方文档 来了解更多关于创建用户和角色的信息。
操作 MongoDB
在完成了 MongoDB 的安装和配置之后,您就可以开始使用 MongoDB 了。您可以使用 mongo
命令来连接到 MongoDB 实例,并使用一些基本的命令来操作 MongoDB 数据库。
连接到 MongoDB
您可以使用以下命令来连接到本地或远程的 MongoDB 实例:
# 连接到本地的 MongoDB 实例
mongo -u username -p password --authenticationDatabase database
# 连接到远程的 MongoDB 实例
mongo -u username -p password --authenticationDatabase database --host hostname --port port
其中,username
、password
、database
、hostname
和 port
需要根据您的实际情况进行替换。
连接成功后,您会进入到 MongoDB shell,您可以在这里执行各种操作。
创建和切换数据库
您可以使用 use
命令来创建或切换数据库。如果数据库不存在,那么 MongoDB 会在第一次插入数据时自动创建它。例如,您可以使用以下命令来创建或切换到一个名为 test
的数据库:
use test
您可以使用 db
命令来查看当前所在的数据库:
db
您可以使用 show dbs
命令来查看所有的数据库:
show dbs
创建和删除集合
您可以使用 db.createCollection()
方法来创建一个集合,如果集合不存在,那么 MongoDB 会在第一次插入数据时自动创建它。例如,您可以使用以下命令来创建一个名为 users
的集合:
db.createCollection("users")
您可以使用 show collections
命令来查看当前数据库中的所有集合:
show collections
您可以使用 db.collection.drop()
方法来删除一个集合,其中 collection
是集合的名称。例如,您可以使用以下命令来删除一个名为 users
的集合:
db.users.drop()
您可以参考 MongoDB 官方文档 来了解更多关于创建和删除集合的信息。
插入和查询文档
您可以使用 db.collection.insertOne()
方法来插入一个文档到一个集合中,其中 collection
是集合的名称,文档是一个 JSON 格式的对象。例如,您可以使用以下命令来插入一个名为 Alice
,年龄为 25
的用户到 users
集合中:
db.users.insertOne({name: "Alice", age: 25})
您可以使用 db.collection.insertMany()
方法来插入多个文档到一个集合中,其中文档是一个 JSON 格式的数组。例如,您可以使用以下命令来插入两个用户到 users
集合中:
db.users.insertMany([{name: "Bob", age: 30}, {name: "Charlie", age: 35}])
您可以使用 db.collection.find()
方法来查询一个集合中的文档,其中 collection
是集合的名称,查询条件是一个 JSON 格式的对象。如果不指定查询条件,那么会返回所有的文档。例如,您可以使用以下命令来查询 users
集合中的所有文档:
db.users.find()
您可以使用 db.collection.findOne()
方法来查询一个集合中的第一个匹配的文档,其中查询条件和用法与 db.collection.find()
相同。例如,您可以使用以下命令来查询 users
集合中年龄大于 30
的第一个文档:
db.users.findOne({age: {$gt: 30}})
您可以参考 MongoDB 官方文档 来了解更多关于插入和查询文档的信息。
更新和删除文档
您可以使用 db.collection.updateOne()
方法来更新一个集合中的第一个匹配的文档,其中 collection
是集合的名称,查询条件是一个 JSON 格式的对象,更新操作是一个 JSON 格式的对象,可以使用 $set
、$inc
、$push
等更新操作符。例如,您可以使用以下命令来更新 users
集合中名为 Alice
的用户的年龄为 26
:
db.users.updateOne({name: "Alice"}, {$set: {age: 26}})
您可以使用 db.collection.updateMany()
方法来更新一个集合中的多个匹配的文档,其中查询条件和更新操作与 db.collection.updateOne()
相同。例如,您可以使用以下命令来更新 users
集合中所有年龄大于 30
的用户的年龄加 1
:
db.users.updateMany({age: {$gt: 30}}, {$inc: {age: 1}})
您可以使用 db.collection.deleteOne()
方法来删除一个集合中的第一个匹配的文档,其中 collection
是集合的名称,查询条件是一个 JSON 格式的对象。例如,您可以使用以下命令来删除 users
集合中名为 Bob
的用户:
db.users.deleteOne({name: "Bob"})
您可以使用 db.collection.deleteMany()
方法来删除一个集合中的多个匹配的文档,其中查询条件与 db.collection.deleteOne()
相同。例如,您可以使用以下命令来删除 users
集合中所有年龄小于 30
的用户:
db.users.deleteMany({age: {$lt: 30}})
您可以参考 MongoDB 官方文档 来了解更多关于更新和删除文档的信息。
结论
本文介绍了如何在 CentOS Stream 9 系统中安装和配置 MongoDB,以及如何使用一些基本的命令来操作 MongoDB 数据库。您可以使用 MongoDB 来存储和处理各种类型的数据,实现高性能和高可扩展性的应用。您还可以使用 MongoDB 的其他特性,比如聚合、索引、事务、分片、副本集等,来提高 MongoDB 的功能和性能。您可以访问 MongoDB 官方网站 和 MongoDB 官方文档 来了解更多关于 MongoDB 的信息。