本指南提供了有关如何在 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