CentOS 8.2上安裝部署MongoDB 4.4

MongoDB是一個面向文檔的開源NoSQL數據庫管理系統。在本文中,您將學習如何在CentOS 8服務器上安裝MongoDB。python

什麼是MongoDB?:


MongoDB是一個開源,跨平臺,面向文檔的數據庫管理系統。MongoDBNoSQL(不只是SQL)數據庫軟件。MongoDB使用帶有模式的文檔之類的JSON(JavaScript對象表示法)。MongoDB由MongoDB Inc開發,並根據SSPL(服務器端公共許可證)進行分發。linux

雖然,咱們在CentOS 8上安裝了MongoDB 4.2,可是相同的過程將適用於CentOS 7,RHEL 7,RHEL 8和相似的發行版。web

環境規格:


  • CPU :3.4 GHz(2核)
  • 內存:2 GB
  • 儲存空間:20 GB
  • 做業系統:CentOS 8.2
  • 主機名:mongodb.lianglab.cn
  • IP地址:192.168.6.160/24
  • 軟件版本:MongoDB 4.4

CentOS 8中安裝MongoDB Yum存儲庫:


咱們能夠從MongoDB下載頁面下載所需的安裝包。sql

這裏是能夠直接下載,咱們須要的rpm包 https://repo.mongodb.org/yum/redhat/8/mongodb-org/4.4/x86_64/RPMS/mongodb-org-server-4.4.2-1.el8.x86_64.rpmmongodb

在這裏,您能夠選擇所需的MongoDB版本以及目標操做系統,該網站將爲您提供指向相應安裝軟件包的下載連接。而後,您能夠使用dnf命令下載該RPM軟件包並將其安裝在CentOS 8服務器上。shell

可是,有更好的方法在CentOS 8服務器上安裝MongoDB,即在CentOS 8中安裝MongoDB官方yum存儲庫,而後使用dnf命令安裝MongoDB ,而且在本安裝指南中使用相同的方法。數據庫

經過使用[ssh客戶端,]root用戶身份與mongodb-01.centlinux.com鏈接。vim

/etc/yum.repo.d目錄中建立一個回購文件,以在CentOS 8服務器中安裝MongoDB yum存儲庫。centos

[root@mongodb ~]# hostnamectl set-hostname mongodb.lianglab.cn
[root@mongodb ~]# vi /etc/yum.repos.d/mongodb-org-4.4.repo

並在此文件中添加如下配置。api

[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

MongoDB yum存儲庫構建緩存。

[root@mongodb ~]# dnf clean all 
39 files removed
[root@mongodb ~]# dnf makecache
CentOS-8 - Base - mirrors.tongdun.cn                                               45 MB/s | 2.2 MB     00:00    
CentOS-8 - Extras - mirrors.tongdun.cn                                            482 kB/s | 8.6 kB     00:00    
CentOS-8 - AppStream - mirrors.tongdun.cn                                          56 MB/s | 5.8 MB     00:00    
Extra Packages for Enterprise Linux 8 - x86_64                                     66 MB/s | 8.4 MB     00:00    
Extra Packages for Enterprise Linux 8 - x86_64 - Debug                             54 MB/s | 3.6 MB     00:00    
Extra Packages for Enterprise Linux 8 - x86_64 - Source                            43 MB/s | 1.8 MB     00:00    
MongoDB Repository                                                                9.5 kB/s |  12 kB     00:01    
Metadata cache created.
[root@mongodb ~]# dnf repolist
repo id                              repo name
AppStream                            CentOS-8 - AppStream - mirrors.tongdun.cn
base                                 CentOS-8 - Base - mirrors.tongdun.cn
epel                                 Extra Packages for Enterprise Linux 8 - x86_64
epel-debuginfo                       Extra Packages for Enterprise Linux 8 - x86_64 - Debug
epel-source                          Extra Packages for Enterprise Linux 8 - x86_64 - Source
extras                               CentOS-8 - Extras - mirrors.tongdun.cn
mongodb-org-4.4                      MongoDB Repository
[root@mongodb ~]#

咱們已經在CentOS 8服務器中安裝了MongoDB yum存儲庫。

CentOS 8中爲MongoDB設置資源限制:

咱們須要根據MongoDB軟件的要求在CentOS 8服務器中設置資源限制。

爲此,請爲MongoDB建立資源限制配置文件,以下所示。

[root@mongodb-01 ~]# vi /etc/security/limits.d/mongod.conf

並在其中添加如下資源限制。

mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000

在CentOS 8上安裝MongoDB數據庫:

咱們能夠重新添加的yum存儲庫在CentOS 8服務器上安裝MongoDB。

咱們正在使用如下dnf命令安裝MongoDB服務器的最新穩定版本。

[root@mongodb ~]# dnf list -y mongodb-org
Last metadata expiration check: 0:02:10 ago on Fri 18 Dec 2020 11:12:48 PM CST.
Available Packages
mongodb-org.x86_64                                                              4.4.2-1.el8                                                              mongodb-org-4.4
[root@mongodb ~]# dnf install -y mongodb-org
Last metadata expiration check: 0:02:50 ago on Fri 18 Dec 2020 11:12:48 PM CST.
Dependencies resolved.
========================================================================================================================================================================
 Package                                          Architecture           Version                                                  Repository                       Size
========================================================================================================================================================================
Installing:
 mongodb-org                                      x86_64                 4.4.2-1.el8                                              mongodb-org-4.4                  10 k
Installing dependencies:
 mongodb-database-tools                           x86_64                 100.2.1-1                                                mongodb-org-4.4                  55 M
 mongodb-org-database-tools-extra                 x86_64                 4.4.2-1.el8                                              mongodb-org-4.4                  20 k
 mongodb-org-mongos                               x86_64                 4.4.2-1.el8                                              mongodb-org-4.4                  22 M
 mongodb-org-server                               x86_64                 4.4.2-1.el8                                              mongodb-org-4.4                  28 M
 mongodb-org-shell                                x86_64                 4.4.2-1.el8                                              mongodb-org-4.4                  18 M
 mongodb-org-tools                                x86_64                 4.4.2-1.el8                                              mongodb-org-4.4                  10 k
 python2                                          x86_64                 2.7.17-1.module_el8.2.0+381+9a5b3c3b                     AppStream                       108 k
 python2-libs                                     x86_64                 2.7.17-1.module_el8.2.0+381+9a5b3c3b                     AppStream                       6.0 M
 python2-pip-wheel                                noarch                 9.0.3-16.module_el8.2.0+381+9a5b3c3b                     AppStream                       1.2 M
 python2-setuptools-wheel                         noarch                 39.0.1-11.module_el8.2.0+381+9a5b3c3b                    AppStream                       289 k
Installing weak dependencies:
 python2-pip                                      noarch                 9.0.3-16.module_el8.2.0+381+9a5b3c3b                     AppStream                       1.9 M
 python2-setuptools                               noarch                 39.0.1-11.module_el8.2.0+381+9a5b3c3b                    AppStream                       643 k
Enabling module streams:
 python27                                                                2.7                                                                                           

Transaction Summary
========================================================================================================================================================================
Install  13 Packages

Total download size: 133 M
Installed size: 421 M
Downloading Packages:
(1/13): python2-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64.rpm                                                                         6.0 MB/s | 108 kB     00:00    
(2/13): python2-pip-wheel-9.0.3-16.module_el8.2.0+381+9a5b3c3b.noarch.rpm                                                                26 MB/s | 1.2 MB     00:00    
(3/13): python2-pip-9.0.3-16.module_el8.2.0+381+9a5b3c3b.noarch.rpm                                                                      21 MB/s | 1.9 MB     00:00    
(4/13): python2-setuptools-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch.rpm                                                              15 MB/s | 643 kB     00:00    
(5/13): python2-setuptools-wheel-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch.rpm                                                        15 MB/s | 289 kB     00:00    
(6/13): python2-libs-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64.rpm                                                                     37 MB/s | 6.0 MB     00:00    
(7/13): mongodb-org-database-tools-extra-4.4.2-1.el8.x86_64.rpm                                                                          35 kB/s |  20 kB     00:00    
(8/13): mongodb-org-4.4.2-1.el8.x86_64.rpm                                                                                               11 kB/s |  10 kB     00:00    
(9/13): mongodb-org-mongos-4.4.2-1.el8.x86_64.rpm                                                                                       3.4 MB/s |  22 MB     00:06    
(10/13): mongodb-org-server-4.4.2-1.el8.x86_64.rpm                                                                                      3.6 MB/s |  28 MB     00:07    
(11/13): mongodb-org-tools-4.4.2-1.el8.x86_64.rpm                                                                                        35 kB/s |  10 kB     00:00    
(12/13): mongodb-org-shell-4.4.2-1.el8.x86_64.rpm                                                                                       3.9 MB/s |  18 MB     00:04    
(13/13): mongodb-database-tools-100.2.1.x86_64.rpm                                                                                      3.9 MB/s |  55 MB     00:14    
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                   9.2 MB/s | 133 MB     00:14     
warning: /var/cache/dnf/mongodb-org-4.4-cef71e585db45e10/packages/mongodb-database-tools-100.2.1.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 90cfb1f5: NOKEY
MongoDB Repository                                                                                                                      885  B/s | 1.6 kB     00:01    
Importing GPG key 0x90CFB1F5:
 Userid     : "MongoDB 4.4 Release Signing Key <packaging@mongodb.com>"
 Fingerprint: 2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5
 From       : https://www.mongodb.org/static/pgp/server-4.4.asc
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                1/1 
  Installing       : mongodb-org-shell-4.4.2-1.el8.x86_64                                                                                                          1/13 
  Installing       : mongodb-org-mongos-4.4.2-1.el8.x86_64                                                                                                         2/13 
  Installing       : mongodb-org-database-tools-extra-4.4.2-1.el8.x86_64                                                                                           3/13 
  Running scriptlet: mongodb-database-tools-100.2.1-1.x86_64                                                                                                       4/13 
  Installing       : mongodb-database-tools-100.2.1-1.x86_64                                                                                                       4/13 
  Running scriptlet: mongodb-database-tools-100.2.1-1.x86_64                                                                                                       4/13 
  Installing       : mongodb-org-tools-4.4.2-1.el8.x86_64                                                                                                          5/13 
  Installing       : python2-setuptools-wheel-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch                                                                         6/13 
  Installing       : python2-pip-wheel-9.0.3-16.module_el8.2.0+381+9a5b3c3b.noarch                                                                                 7/13 
  Installing       : python2-libs-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64                                                                                      8/13 
  Installing       : python2-pip-9.0.3-16.module_el8.2.0+381+9a5b3c3b.noarch                                                                                       9/13 
  Installing       : python2-setuptools-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch                                                                              10/13 
  Installing       : python2-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64                                                                                          11/13 
  Running scriptlet: python2-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64                                                                                          11/13 
  Running scriptlet: mongodb-org-server-4.4.2-1.el8.x86_64                                                                                                        12/13 
  Installing       : mongodb-org-server-4.4.2-1.el8.x86_64                                                                                                        12/13 
  Running scriptlet: mongodb-org-server-4.4.2-1.el8.x86_64                                                                                                        12/13 
Created symlink /etc/systemd/system/multi-user.target.wants/mongod.service → /usr/lib/systemd/system/mongod.service.

  Installing       : mongodb-org-4.4.2-1.el8.x86_64                                                                                                               13/13 
  Running scriptlet: mongodb-org-4.4.2-1.el8.x86_64                                                                                                               13/13 
  Verifying        : python2-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64                                                                                           1/13 
  Verifying        : python2-libs-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64                                                                                      2/13 
  Verifying        : python2-pip-9.0.3-16.module_el8.2.0+381+9a5b3c3b.noarch                                                                                       3/13 
  Verifying        : python2-pip-wheel-9.0.3-16.module_el8.2.0+381+9a5b3c3b.noarch                                                                                 4/13 
  Verifying        : python2-setuptools-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch                                                                               5/13 
  Verifying        : python2-setuptools-wheel-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch                                                                         6/13 
  Verifying        : mongodb-database-tools-100.2.1-1.x86_64                                                                                                       7/13 
  Verifying        : mongodb-org-4.4.2-1.el8.x86_64                                                                                                                8/13 
  Verifying        : mongodb-org-database-tools-extra-4.4.2-1.el8.x86_64                                                                                           9/13 
  Verifying        : mongodb-org-mongos-4.4.2-1.el8.x86_64                                                                                                        10/13 
  Verifying        : mongodb-org-server-4.4.2-1.el8.x86_64                                                                                                        11/13 
  Verifying        : mongodb-org-shell-4.4.2-1.el8.x86_64                                                                                                         12/13 
  Verifying        : mongodb-org-tools-4.4.2-1.el8.x86_64                                                                                                         13/13 
Installed products updated.

Installed:
  mongodb-database-tools-100.2.1-1.x86_64                                               mongodb-org-4.4.2-1.el8.x86_64                                                 
  mongodb-org-database-tools-extra-4.4.2-1.el8.x86_64                                   mongodb-org-mongos-4.4.2-1.el8.x86_64                                          
  mongodb-org-server-4.4.2-1.el8.x86_64                                                 mongodb-org-shell-4.4.2-1.el8.x86_64                                           
  mongodb-org-tools-4.4.2-1.el8.x86_64                                                  python2-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64                            
  python2-libs-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64                              python2-pip-9.0.3-16.module_el8.2.0+381+9a5b3c3b.noarch                        
  python2-pip-wheel-9.0.3-16.module_el8.2.0+381+9a5b3c3b.noarch                         python2-setuptools-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch                
  python2-setuptools-wheel-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch                

Complete!

啓用並啓動MongoDB數據庫服務。

[root@mongodb ~]# systemctl enable --now mongod.service
[root@mongodb ~]#

成功啓動後,檢查MongoDB的服務狀態和端口監聽信息

[root@mongodb ~]# systemctl status mongod.service
● mongod.service - MongoDB Database Server
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-12-18 23:17:49 CST; 16s ago
     Docs: https://docs.mongodb.org/manual
  Process: 930807 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 930804 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 930802 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 930800 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
 Main PID: 930809 (mongod)
   Memory: 57.7M
   CGroup: /system.slice/mongod.service
           └─930809 /usr/bin/mongod -f /etc/mongod.conf

Dec 18 23:17:48 mongodb.lianglab.cn systemd[1]: Starting MongoDB Database Server...
Dec 18 23:17:48 mongodb.lianglab.cn mongod[930807]: about to fork child process, waiting until server is ready for connections.
Dec 18 23:17:48 mongodb.lianglab.cn mongod[930807]: forked process: 930809
Dec 18 23:17:49 mongodb.lianglab.cn mongod[930807]: child process started successfully, parent exiting
Dec 18 23:17:49 mongodb.lianglab.cn systemd[1]: Started MongoDB Database Server


[root@mongodb ~]# netstat -anplt| grep mongod
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      930809/mongod       
[root@mongodb ~]# ss -anplt | grep mongod
LISTEN    0         128              127.0.0.1:27017            0.0.0.0:*        users:(("mongod",pid=930809,fd=12))

CentOS 8上爲MongoDB建立SELinux策略:

根據MongoDB文檔,若是您已將SELinux配置爲強制模式,則必須爲MongoDB建立SELinux策略。

檢查當前的SELinux模式。

[root@mongodb ~]# getenforce
Enforcing

咱們須要checkpolicy命令來驗證自定義SELinux策略,所以咱們正在使用dnf命令安裝checkpolicy軟件包。

[root@mongodb ~]#dnf install -y checkpolicy
CentOS-8 - AppStream                            4.0 kB/s | 4.3 kB     00:01
CentOS-8 - Base                                 3.0 kB/s | 3.8 kB     00:01
CentOS-8 - Extras                               2.7 kB/s | 1.5 kB     00:00
MongoDB Repository                              1.6 kB/s | 2.5 kB     00:01
Dependencies resolved.
================================================================================
 Package              Architecture    Version             Repository       Size
================================================================================
Installing:
 checkpolicy          x86_64          2.9-1.el8           BaseOS          348 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 348 k
Installed size: 1.7 M
Downloading Packages:
checkpolicy-2.9-1.el8.x86_64.rpm                7.5 kB/s | 348 kB     00:46
--------------------------------------------------------------------------------
Total                                           7.5 kB/s | 348 kB     00:46
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : checkpolicy-2.9-1.el8.x86_64                           1/1
  Running scriptlet: checkpolicy-2.9-1.el8.x86_64                           1/1
  Verifying        : checkpolicy-2.9-1.el8.x86_64                           1/1

Installed:
  checkpolicy-2.9-1.el8.x86_64

Complete!

建立一個定製的SELinux策略文件。

[root@mongodb ~]# vi mongodb_cgroup_memory.te

並在其中添加如下指令。

module mongodb_cgroup_memory 1.0;

require {
    type cgroup_t;
    type mongod_t;
    class dir search;
    class file { getattr open read };
}

#============= mongod_t ==============
allow mongod_t cgroup_t:dir search;
allow mongod_t cgroup_t:file { getattr open read };

編譯並應用此SELinux策略。

[root@mongodb ~]# checkmodule -M -m -o mongodb_cgroup_memory.mod mongodb_cgroup_memory.te
[root@mongodb ~]# semodule_package -o mongodb_cgroup_memory.pp -m mongodb_cgroup_memory.mod
[[root@mongodb ~]# semodule -i mongodb_cgroup_memory.pp

MongoDB中建立管理員用戶:

默認狀況下,MongoDB服務器中未啓用訪問控制,所以任何人均可以訪問MongoDB服務器並執行管理操做。

所以,很是重要的是,咱們建立一個Admin用戶並在MongoDB服務器中啓用訪問控制。

以下鏈接MongoDB shell。

[root@mongodb ~]# mongo
MongoDB shell version v4.4.2
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("42a1e2d9-cd5c-42bf-93c1-f007b07ec356") }
MongoDB server version: 4.4.2
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
	https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
	https://community.mongodb.com
---
The server generated these startup warnings when booting: 
        2020-12-18T23:17:49.873+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
---
        Enable MongoDB's free cloud-based monitoring service, which will then receive and display
        metrics about your deployment (disk utilization, CPU, operation statistics, etc).

        The monitoring data will be available on a MongoDB website with a unique URL accessible to you
        and anyone you share the URL with. MongoDB may use this information to make product
        improvements and to suggest MongoDB products and deployment options to you.

        To enable free monitoring, run the following command: db.enableFreeMonitoring()
        To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
>

管理數據庫鏈接。

> use admin;
switched to db admin
>

以下建立管理員用戶。

> db.createUser(
...   {
...     user: "admin",
...     pwd: "liang123",
...     roles: [ { role: "userAdminAnyDatabase",db: "admin" } ]
...   }
... )
Successfully added user: {
	"user" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}

列出MongoDB數據庫中的全部用戶。

> show users
{
	"_id" : "admin.admin",
	"userId" : UUID("26d81b7b-f86a-4507-aa75-015cb0e02a11"),
	"user" : "admin",
	"db" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	],
	"mechanisms" : [
		"SCRAM-SHA-1",
		"SCRAM-SHA-256"
	]
}
>

MongoDB管理員用戶已成功建立。

MongoDB Shell退出。

> exit
bye

MongoDB服務器中啓用訪問控制:

最初,訪問控制在MongoDB服務器中被禁用。所以,任何具備CentOS 8服務器操做系統級訪問權限的用戶均可以鏈接到MongoDB實例並在數據庫上執行管理操做。這就是爲何咱們可以在上一步中建立管理員用戶而無需任何身份驗證的緣由。

要爲MongoDB服務器啓用訪問控制,咱們須要爲mongod.service編輯systemd單元文件。

[root@mongodb ~]# vi /usr/lib/systemd/system/mongod.service

在此文件中找到如下行。

Environment="OPTIONS=-f /etc/mongod.conf"

並將其替換爲如下行。

Environment="OPTIONS=--auth -f /etc/mongod.conf"

咱們已經使用文本編輯器顯式地編輯了systemd單位文件。所以,咱們須要執行如下命令來通知systemd有關此更改。

[root@mongodb ~]# systemctl daemon-reload

從新啓動MongoDB服務以應用更改。

[root@mongodb ~]# systemctl restart mongod.service

要檢查訪問控制,請鏈接MongoDB shell並執行一些管理命令。

[root@mongodb ~]# mongo
MongoDB shell version v4.4.2
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("c2640def-e833-4bfc-93ae-e0e5ddea7712") }
MongoDB server version: 4.4.2
> use admin
switched to db admin
> show users
uncaught exception: Error: command usersInfo requires authentication :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.getUsers@src/mongo/shell/db.js:1639:15
shellHelper.show@src/mongo/shell/utils.js:914:9
shellHelper@src/mongo/shell/utils.js:819:15
@(shellhelp2):1:1

此次「 show user」命令引起身份驗證錯誤,它確認在咱們的MongoDB服務器中已啓用訪問控制

如今,以管理員用戶身份鏈接。

> db.auth("admin",passwordPrompt())
Enter password:   ###輸入咱們前面設置的是密碼
1

如今,執行相同的命令,以檢查其是否正常運行。

> show users     #查詢用戶信息
{
	"_id" : "admin.admin",
	"userId" : UUID("26d81b7b-f86a-4507-aa75-015cb0e02a11"),
	"user" : "admin",
	"db" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	],
	"mechanisms" : [
		"SCRAM-SHA-1",
		"SCRAM-SHA-256"
	]
}
> exit
bye
[root@mongodb ~]#

已成功使用特權用戶執行命令「顯示用戶」

MongoDB數據庫的訪問控制已啓用。

配置MongoDB服務以進行網絡訪問:

此步驟是可選的。若是您打算經過網絡訪問MongoDB數據庫,則必須執行如下配置。

默認狀況下,MongoDB服務在本地主機接口上運行。所以,要使其可以從網絡訪問,咱們須要在全部接口上運行MongoDB服務。

使用vim編輯器編輯MongoDB配置文件

[root@mongodb ~]# cat /etc/mongod.conf | grep bind
  bindIp: 127.0.0.1  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.binIpAll setting.
[root@mongodb ~]# vi /etc/mongod.conf
[root@mongodb ~]# netstat -anptl | grep mongod
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      931395/mongod       
[root@mongodb ~]# systemctl restart mongod.service
[root@mongodb ~]# netstat -anptl | grep mongod
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      931722/mongod       
[root@mongodb ~]#

在此文件中找到bindIp指令並將其設置爲。

修改 bind_ip 127.0.0.1 爲 bind_ip = 0.0.0.0 或者註釋掉, #bind_ip 127.0.0.1, 讓其監聽全部外網ip。

bindIp: 0.0.0.0

從新啓動MongoDB服務以應用更改。

[root@mongodb ~]# systemctl restart mongod.service

若是咱們啓動了防火牆策略,還須要容許Linux防火牆中的MongoDB服務傳入流量。

[root@mongodb ~]#firewall-cmd --permanent --add-service=mongodb
success
[root@mongodb ~]# firewall-cmd --reload
success

您如今能夠從網絡訪問MongoDB數據庫服務。

MongoDB數據和日誌目錄:

如下是兩個目錄,對MongoDB數據庫管理員來講很是重要。

  • /var/lib/mongo-數據目錄(默認)
  • /var/log/mongodb-日誌目錄(默認)

咱們能夠經過在/etc/mongodb.conf文件中設置如下參數來自定義以上目錄。

  • storage.dbPath-指定新的數據目錄路徑
  • systemLog.path-指定新的日誌文件路徑

結論:

咱們已經在CentOS 8服務器上成功安裝了MongoDB,並啓用了訪問控制。MongoDB的權威指南:強大的可擴展數據存儲O'Reilly Media公司是一個很好的書對MongoDB的管理,咱們極力推薦這對MongoDB的數據庫管理員。

相關文章
相關標籤/搜索