在 Rocky Linux 8 上安装 MongoDB

本指南提供了有关如何在 Rocky Linux 8 上安装 MongoDB 的分步教程。MongoDB 是一个跨平台的面向文档的 NoSQL 数据库程序。

在 Rocky Linux 8 上安装 MongoDB

创建 MongoDB RPM 存储库

在撰写本文时,Rocky Linux 8 的官方默认存储库不提供 MongoDB 包。

因此,为了在 Rocky Linux 上安装 MongoDB,您需要创建 MongoDB 存储库。

请注意,MongoDB 可用作社区版和企业版。 本指南安装 CE 版本。

下面创建的存储库用于安装 MongoDB 4.4,这是当前的稳定版本。

运行以下命令在 Rocky Linux 8 上安装 MongoDB 4.4 存储库。

cat > /etc/yum.repos.d/mongodb.repo << 'EOL' [mongodb-org-4.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc EOL 

在 Rocky Linux 8 上安装 MongoDB

一旦 MongoDB 存储库,您可以通过运行命令在 Rocky Linux 8 上安装 MongoDB;

dnf install mongodb-org
MongoDB Repository                                                                                                                           21 kB/s |  23 kB     00:01     Dependencies resolved. ============================================================================================================================================================================  Package                                            Architecture             Version                                                Repository                         Size ============================================================================================================================================================================ Installing:  mongodb-org                                        x86_64                   4.4.6-1.el8                                            mongodb-org-4.4                    11 k Installing dependencies:  cyrus-sasl                                         x86_64                   2.1.27-5.el8                                           baseos                             95 k  cyrus-sasl-gssapi                                  x86_64                   2.1.27-5.el8                                           baseos                             49 k  cyrus-sasl-plain                                   x86_64                   2.1.27-5.el8                                           baseos                             46 k  mongodb-database-tools                             x86_64                   100.3.1-1                                              mongodb-org-4.4                    54 M  mongodb-org-database-tools-extra                   x86_64                   4.4.6-1.el8                                            mongodb-org-4.4                    23 k  mongodb-org-mongos                                 x86_64                   4.4.6-1.el8                                            mongodb-org-4.4                    17 M  mongodb-org-server                                 x86_64                   4.4.6-1.el8                                            mongodb-org-4.4                    22 M  mongodb-org-shell                                  x86_64                   4.4.6-1.el8                                            mongodb-org-4.4                    14 M  mongodb-org-tools                                  x86_64                   4.4.6-1.el8                                            mongodb-org-4.4                    11 k  python3-pip                                        noarch                   9.0.3-19.el8.rocky                                     appstream                          19 k  python3-setuptools                                 noarch                   39.2.0-6.el8                                           baseos                            162 k  python36                                           x86_64                   3.6.8-2.module+el8.3.0+120+426d8baf                    appstream                          18 k Enabling module streams:  python36                                                                    3.6                                                                                             Transaction Summary ============================================================================================================================================================================ Install  13 Packages  Total download size: 106 M Installed size: 342 M Is this ok [y/N]: y 

安装完成后,您可以通过运行以下命令来验证安装的版本;

mongod --version
db version v4.4.6 Build Info: {     "version": "4.4.6",     "gitVersion": "72e66213c2c3eab37d9358d5e78ad7f5c1d0d0d7",     "openSSLVersion": "OpenSSL 1.1.1g FIPS  21 Apr 2020",     "modules": [],     "allocator": "tcmalloc",     "environment": {         "distmod": "rhel80",         "distarch": "x86_64",         "target_arch": "x86_64"     } } 

在 Rocky Linux 8 上运行 MongoDB

MongoDB 作为非特权运行 mongod 用户,它使用 /var/lib/mongo (数据目录)和 /var/log/mongodb (日志目录)默认目录。

MongoDB 守护进程由 systemd 管理。 因此,您可以通过执行以下命令来启动它;

systemctl start mongod

要检查 MongoDB 是否成功运行,请检查其日志文件, /var/log/mongodb/mongod.log. 您应该能够看到一行指示 MongoDB 已准备好并等待连接。

tail /var/log/mongodb/mongod.log
... {"t":{"$date":"2021-07-01T17:55:47.409+03:00"},"s":"I",  "c":"NETWORK",  "id":23015,   "ctx":"listener","msg":"Listening on","attr":{"address":"/tmp/mongodb-27017.sock"}}  {"t":{"$date":"2021-07-01T17:55:47.409+03:00"},"s":"I",  "c":"NETWORK",  "id":23015,   "ctx":"listener","msg":"Listening on","attr":{"address":"127.0.0.1"}}  {"t":{"$date":"2021-07-01T17:55:47.409+03:00"},"s":"I",  "c":"NETWORK",  "id":23016,   "ctx":"listener","msg":"Waiting for connections","attr":{"port":27017,"ssl":"off"}} ...

您还可以通过运行以下命令来检查服务的状态;

systemctl status mongod
● mongod.service - MongoDB Database Server    Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)    Active: active (running) since Thu 2021-07-01 17:55:47 EAT; 1min 34s ago      Docs: https://docs.mongodb.org/manual   Process: 2191 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)   Process: 2189 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)   Process: 2187 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)   Process: 2186 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)  Main PID: 2194 (mongod)    Memory: 76.1M    CGroup: /system.slice/mongod.service            └─2194 /usr/bin/mongod -f /etc/mongod.conf  Jul 01 17:55:39 localhost.localdomain systemd[1]: Starting MongoDB Database Server... Jul 01 17:55:40 localhost.localdomain mongod[2191]: about to fork child process, waiting until server is ready for connections. Jul 01 17:55:40 localhost.localdomain mongod[2191]: forked process: 2194 Jul 01 17:55:47 localhost.localdomain mongod[2191]: child process started successfully, parent exiting Jul 01 17:55:47 localhost.localdomain systemd[1]: Started MongoDB Database Server. 

启用 MongoDB 在系统启动时运行。

systemctl enable mongod

在 Rocky Linux 8 上使用 MongoDB

安装完成后,您现在可以开始使用 MongoDB。

默认情况下,MongoDB 侦听端口 27017 上的本地地址。 因此,从本地主机,您可以通过运行简单地登录到 MongoDB shell;

mongo
MongoDB shell version v4.4.6 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("678ce04a-f894-44a3-b70d-48c9bee1ab8f") } MongoDB server version: 4.4.6 Welcome to the MongoDB shell. For interactive help, type "help". ... > 

从 MongoDB shell,您可以运行您的数据库管理命令。 例如列出可用的数据库;

> db test

要使用特定的 MongoDB 数据库,只需运行;

use database-name

要创建 MongoDB 数据库,只需通过指定要创建和插入数据的数据库名称切换到新数据库(不存在的数据库)。

> use testdatabase switched to db testdatabase

您现在可以将数据插入到新数据库中。

db.userdetails.insertOne(    { "F_Name" : "fname",      "L_NAME" : "lname",      "ID_NO" : "12345",      "AGE" : "19",      "TEL" : "654321"    } )

按 Enter 插入数据。

{ 	"acknowledged" : true, 	"insertedId" : ObjectId("5da6036c387fad741503e4a1") }

列出数据库集合;

show collections

显示包含在 MongoDB 数据库集合中的数据;

db.NAME-OF-COLLECTION.find().pretty()

举个例子,列出上面创建的集合的内容;

> use testdatabase switched to db testdatabase
> show collections userdetails
> db.userdetails.find().pretty()

样本输出;

{ 	"_id" : ObjectId("60ddd89d60fdb735de85a0c6"), 	"F_Name" : "fname", 	"L_NAME" : "lname", 	"ID_NO" : "12345", 	"AGE" : "19", 	"TEL" : "654321" } >

创建具有读/写权限的 MongoDB 数据库用户。

use testdatabase
db.createUser(    {      user: 'testuser',      pwd: '[email protected]',      roles: [ { role: 'readWrite', db: 'testdatabase' } ]    }  );

按 Enter 添加用户。

Successfully added user: {      "user" : "testuser",      "roles" : [          {              "role" : "readWrite",              "db" : "testdatabase"          }      ]  }

列出数据库用户;

db.getUsers()
[ 	{ 		"_id" : "testdatabase.testuser", 		"userId" : UUID("ffd6f3ae-9b07-4b5a-84e0-9679923c625e"), 		"user" : "testuser", 		"db" : "testdatabase", 		"roles" : [ 			{ 				"role" : "readWrite", 				"db" : "testdatabase" 			} 		], 		"mechanisms" : [ 			"SCRAM-SHA-1", 			"SCRAM-SHA-256" 		] 	} ] 

如果要为单个数据库创建管理员;

use testdatabase
db.createUser(   {     user: 'testadmin',     pwd: '[email protected]',     roles: [ { role: 'userAdmin', db: 'testdatabase' } ]   } );

创建整体数据库 admin 拥有对所有数据库的所有管理权限,使用管理数据库并创建 admin 用户如下;

use admin
db.createUser(   {     user: 'admin',     pwd: '[email protected]',     roles: [ { role: 'userAdminAnyDatabase', db: 'admin' } ]   } );

嗯,关于如何使用 MongoDB,还有很多东西需要学习。 有关更多信息,请参阅 MongoDB 入门指南。

在 MongoDB 上启用密码身份验证

如果您注意到,默认情况下没有为数据库启用访问控制。 要了解如何为 MongoDB 启用密码身份验证,请查看以下指南;

启用 MongoDB 身份验证

好了,这标志着我们关于如何在 Rocky Linux 8 上安装 MongoDB 的指南的结束。

在 CentOS 8 上安装 Robo 3T MongoDB GUI 工具

安装 MongoDB 4 Fedora 30/29 / CentOS 7