经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MongoDB » 查看文章
CentOS 8.2上安装部署MongoDB 4.4
来源:cnblogs  作者:亮亮实验室  时间:2020/12/21 14:59:59  对本文有异议

?

MongoDB是一个面向文档的开源NoSQL数据库管理系统。在本文中,您将学习如何在CentOS 8服务器上安装MongoDB。

什么是MongoDB?:


MongoDB是一个开源,跨平台,面向文档的数据库管理系统。MongoDBNoSQL(不仅是SQL)数据库软件。MongoDB使用带有模式的文档之类的JSON(JavaScript对象表示法)。MongoDB由MongoDB Inc开发,并根据SSPL(服务器端公共许可证)进行分发。

虽然,我们在CentOS 8上安装了MongoDB 4.2,但是相同的过程将适用于CentOS 7,RHEL 7,RHEL 8和类似的发行版。

环境规格:


  • 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下载页面下载所需的安装包。

这里是可以直接下载,我们需要的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.rpm

在这里,您可以选择所需的MongoDB版本以及目标操作系统,该网站将为您提供指向相应安装软件包的下载链接。然后,您可以使用dnf命令下载该RPM软件包并将其安装在CentOS 8服务器上。

但是,有更好的方法在CentOS 8服务器上安装MongoDB,即在CentOS 8中安装MongoDB官方yum存储库,然后使用dnf命令安装MongoDB ,并且在本安装指南中使用相同的方法。

通过使用[ssh客户端,]root用户身份与mongodb-01.centlinux.com连接。

/etc/yum.repo.d目录中创建一个回购文件,以在CentOS 8服务器中安装MongoDB yum存储库。

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

并在此文件中添加以下配置。

  1. [mongodb-org-4.4]
  2. name=MongoDB Repository
  3. baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
  4. gpgcheck=1
  5. enabled=1
  6. gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

MongoDB yum存储库构建缓存。

  1. [root@mongodb ~]# dnf clean all
  2. 39 files removed
  3. [root@mongodb ~]# dnf makecache
  4. CentOS-8 - Base - mirrors.tongdun.cn 45 MB/s | 2.2 MB 00:00
  5. CentOS-8 - Extras - mirrors.tongdun.cn 482 kB/s | 8.6 kB 00:00
  6. CentOS-8 - AppStream - mirrors.tongdun.cn 56 MB/s | 5.8 MB 00:00
  7. Extra Packages for Enterprise Linux 8 - x86_64 66 MB/s | 8.4 MB 00:00
  8. Extra Packages for Enterprise Linux 8 - x86_64 - Debug 54 MB/s | 3.6 MB 00:00
  9. Extra Packages for Enterprise Linux 8 - x86_64 - Source 43 MB/s | 1.8 MB 00:00
  10. MongoDB Repository 9.5 kB/s | 12 kB 00:01
  11. Metadata cache created.
  12. [root@mongodb ~]# dnf repolist
  13. repo id repo name
  14. AppStream CentOS-8 - AppStream - mirrors.tongdun.cn
  15. base CentOS-8 - Base - mirrors.tongdun.cn
  16. epel Extra Packages for Enterprise Linux 8 - x86_64
  17. epel-debuginfo Extra Packages for Enterprise Linux 8 - x86_64 - Debug
  18. epel-source Extra Packages for Enterprise Linux 8 - x86_64 - Source
  19. extras CentOS-8 - Extras - mirrors.tongdun.cn
  20. mongodb-org-4.4 MongoDB Repository
  21. [root@mongodb ~]#

我们已经在CentOS 8服务器中安装了MongoDB yum存储库。

CentOS 8中为MongoDB设置资源限制:

我们需要根据MongoDB软件的要求在CentOS 8服务器中设置资源限制。

为此,请为MongoDB创建资源限制配置文件,如下所示。

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

并在其中添加以下资源限制。

  1. mongod soft nproc 64000
  2. mongod hard nproc 64000
  3. mongod soft nofile 64000
  4. mongod hard nofile 64000

在CentOS 8上安装MongoDB数据库:

我们可以从新添加的yum存储库在CentOS 8服务器上安装MongoDB。

我们正在使用以下dnf命令安装MongoDB服务器的最新稳定版本。

  1. [root@mongodb ~]# dnf list -y mongodb-org
  2. Last metadata expiration check: 0:02:10 ago on Fri 18 Dec 2020 11:12:48 PM CST.
  3. Available Packages
  4. mongodb-org.x86_64 4.4.2-1.el8 mongodb-org-4.4
  5. [root@mongodb ~]# dnf install -y mongodb-org
  6. Last metadata expiration check: 0:02:50 ago on Fri 18 Dec 2020 11:12:48 PM CST.
  7. Dependencies resolved.
  8. ========================================================================================================================================================================
  9. Package Architecture Version Repository Size
  10. ========================================================================================================================================================================
  11. Installing:
  12. mongodb-org x86_64 4.4.2-1.el8 mongodb-org-4.4 10 k
  13. Installing dependencies:
  14. mongodb-database-tools x86_64 100.2.1-1 mongodb-org-4.4 55 M
  15. mongodb-org-database-tools-extra x86_64 4.4.2-1.el8 mongodb-org-4.4 20 k
  16. mongodb-org-mongos x86_64 4.4.2-1.el8 mongodb-org-4.4 22 M
  17. mongodb-org-server x86_64 4.4.2-1.el8 mongodb-org-4.4 28 M
  18. mongodb-org-shell x86_64 4.4.2-1.el8 mongodb-org-4.4 18 M
  19. mongodb-org-tools x86_64 4.4.2-1.el8 mongodb-org-4.4 10 k
  20. python2 x86_64 2.7.17-1.module_el8.2.0+381+9a5b3c3b AppStream 108 k
  21. python2-libs x86_64 2.7.17-1.module_el8.2.0+381+9a5b3c3b AppStream 6.0 M
  22. python2-pip-wheel noarch 9.0.3-16.module_el8.2.0+381+9a5b3c3b AppStream 1.2 M
  23. python2-setuptools-wheel noarch 39.0.1-11.module_el8.2.0+381+9a5b3c3b AppStream 289 k
  24. Installing weak dependencies:
  25. python2-pip noarch 9.0.3-16.module_el8.2.0+381+9a5b3c3b AppStream 1.9 M
  26. python2-setuptools noarch 39.0.1-11.module_el8.2.0+381+9a5b3c3b AppStream 643 k
  27. Enabling module streams:
  28. python27 2.7
  29. Transaction Summary
  30. ========================================================================================================================================================================
  31. Install 13 Packages
  32. Total download size: 133 M
  33. Installed size: 421 M
  34. Downloading Packages:
  35. (1/13): python2-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64.rpm 6.0 MB/s | 108 kB 00:00
  36. (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
  37. (3/13): python2-pip-9.0.3-16.module_el8.2.0+381+9a5b3c3b.noarch.rpm 21 MB/s | 1.9 MB 00:00
  38. (4/13): python2-setuptools-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch.rpm 15 MB/s | 643 kB 00:00
  39. (5/13): python2-setuptools-wheel-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch.rpm 15 MB/s | 289 kB 00:00
  40. (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
  41. (7/13): mongodb-org-database-tools-extra-4.4.2-1.el8.x86_64.rpm 35 kB/s | 20 kB 00:00
  42. (8/13): mongodb-org-4.4.2-1.el8.x86_64.rpm 11 kB/s | 10 kB 00:00
  43. (9/13): mongodb-org-mongos-4.4.2-1.el8.x86_64.rpm 3.4 MB/s | 22 MB 00:06
  44. (10/13): mongodb-org-server-4.4.2-1.el8.x86_64.rpm 3.6 MB/s | 28 MB 00:07
  45. (11/13): mongodb-org-tools-4.4.2-1.el8.x86_64.rpm 35 kB/s | 10 kB 00:00
  46. (12/13): mongodb-org-shell-4.4.2-1.el8.x86_64.rpm 3.9 MB/s | 18 MB 00:04
  47. (13/13): mongodb-database-tools-100.2.1.x86_64.rpm 3.9 MB/s | 55 MB 00:14
  48. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  49. Total 9.2 MB/s | 133 MB 00:14
  50. 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
  51. MongoDB Repository 885 B/s | 1.6 kB 00:01
  52. Importing GPG key 0x90CFB1F5:
  53. Userid : "MongoDB 4.4 Release Signing Key <packaging@mongodb.com>"
  54. Fingerprint: 2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5
  55. From : https://www.mongodb.org/static/pgp/server-4.4.asc
  56. Key imported successfully
  57. Running transaction check
  58. Transaction check succeeded.
  59. Running transaction test
  60. Transaction test succeeded.
  61. Running transaction
  62. Preparing : 1/1
  63. Installing : mongodb-org-shell-4.4.2-1.el8.x86_64 1/13
  64. Installing : mongodb-org-mongos-4.4.2-1.el8.x86_64 2/13
  65. Installing : mongodb-org-database-tools-extra-4.4.2-1.el8.x86_64 3/13
  66. Running scriptlet: mongodb-database-tools-100.2.1-1.x86_64 4/13
  67. Installing : mongodb-database-tools-100.2.1-1.x86_64 4/13
  68. Running scriptlet: mongodb-database-tools-100.2.1-1.x86_64 4/13
  69. Installing : mongodb-org-tools-4.4.2-1.el8.x86_64 5/13
  70. Installing : python2-setuptools-wheel-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch 6/13
  71. Installing : python2-pip-wheel-9.0.3-16.module_el8.2.0+381+9a5b3c3b.noarch 7/13
  72. Installing : python2-libs-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64 8/13
  73. Installing : python2-pip-9.0.3-16.module_el8.2.0+381+9a5b3c3b.noarch 9/13
  74. Installing : python2-setuptools-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch 10/13
  75. Installing : python2-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64 11/13
  76. Running scriptlet: python2-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64 11/13
  77. Running scriptlet: mongodb-org-server-4.4.2-1.el8.x86_64 12/13
  78. Installing : mongodb-org-server-4.4.2-1.el8.x86_64 12/13
  79. Running scriptlet: mongodb-org-server-4.4.2-1.el8.x86_64 12/13
  80. Created symlink /etc/systemd/system/multi-user.target.wants/mongod.service /usr/lib/systemd/system/mongod.service.
  81. Installing : mongodb-org-4.4.2-1.el8.x86_64 13/13
  82. Running scriptlet: mongodb-org-4.4.2-1.el8.x86_64 13/13
  83. Verifying : python2-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64 1/13
  84. Verifying : python2-libs-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64 2/13
  85. Verifying : python2-pip-9.0.3-16.module_el8.2.0+381+9a5b3c3b.noarch 3/13
  86. Verifying : python2-pip-wheel-9.0.3-16.module_el8.2.0+381+9a5b3c3b.noarch 4/13
  87. Verifying : python2-setuptools-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch 5/13
  88. Verifying : python2-setuptools-wheel-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch 6/13
  89. Verifying : mongodb-database-tools-100.2.1-1.x86_64 7/13
  90. Verifying : mongodb-org-4.4.2-1.el8.x86_64 8/13
  91. Verifying : mongodb-org-database-tools-extra-4.4.2-1.el8.x86_64 9/13
  92. Verifying : mongodb-org-mongos-4.4.2-1.el8.x86_64 10/13
  93. Verifying : mongodb-org-server-4.4.2-1.el8.x86_64 11/13
  94. Verifying : mongodb-org-shell-4.4.2-1.el8.x86_64 12/13
  95. Verifying : mongodb-org-tools-4.4.2-1.el8.x86_64 13/13
  96. Installed products updated.
  97. Installed:
  98. mongodb-database-tools-100.2.1-1.x86_64 mongodb-org-4.4.2-1.el8.x86_64
  99. mongodb-org-database-tools-extra-4.4.2-1.el8.x86_64 mongodb-org-mongos-4.4.2-1.el8.x86_64
  100. mongodb-org-server-4.4.2-1.el8.x86_64 mongodb-org-shell-4.4.2-1.el8.x86_64
  101. mongodb-org-tools-4.4.2-1.el8.x86_64 python2-2.7.17-1.module_el8.2.0+381+9a5b3c3b.x86_64
  102. 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
  103. 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
  104. python2-setuptools-wheel-39.0.1-11.module_el8.2.0+381+9a5b3c3b.noarch
  105. Complete!

启用并启动MongoDB数据库服务。

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

成功启动后,检查MongoDB的服务状态和端口监听信息

  1. [root@mongodb ~]# systemctl status mongod.service
  2. mongod.service - MongoDB Database Server
  3. Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
  4. Active: active (running) since Fri 2020-12-18 23:17:49 CST; 16s ago
  5. Docs: https://docs.mongodb.org/manual
  6. Process: 930807 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
  7. Process: 930804 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
  8. Process: 930802 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
  9. Process: 930800 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
  10. Main PID: 930809 (mongod)
  11. Memory: 57.7M
  12. CGroup: /system.slice/mongod.service
  13. └─930809 /usr/bin/mongod -f /etc/mongod.conf
  14. Dec 18 23:17:48 mongodb.lianglab.cn systemd[1]: Starting MongoDB Database Server...
  15. Dec 18 23:17:48 mongodb.lianglab.cn mongod[930807]: about to fork child process, waiting until server is ready for connections.
  16. Dec 18 23:17:48 mongodb.lianglab.cn mongod[930807]: forked process: 930809
  17. Dec 18 23:17:49 mongodb.lianglab.cn mongod[930807]: child process started successfully, parent exiting
  18. Dec 18 23:17:49 mongodb.lianglab.cn systemd[1]: Started MongoDB Database Server
  19. [root@mongodb ~]# netstat -anplt| grep mongod
  20. tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 930809/mongod
  21. [root@mongodb ~]# ss -anplt | grep mongod
  22. 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模式。

  1. [root@mongodb ~]# getenforce
  2. Enforcing

我们需要checkpolicy命令来验证自定义SELinux策略,因此我们正在使用dnf命令安装checkpolicy软件包。

  1. [root@mongodb ~]#dnf install -y checkpolicy
  2. CentOS-8 - AppStream 4.0 kB/s | 4.3 kB 00:01
  3. CentOS-8 - Base 3.0 kB/s | 3.8 kB 00:01
  4. CentOS-8 - Extras 2.7 kB/s | 1.5 kB 00:00
  5. MongoDB Repository 1.6 kB/s | 2.5 kB 00:01
  6. Dependencies resolved.
  7. ================================================================================
  8. Package Architecture Version Repository Size
  9. ================================================================================
  10. Installing:
  11. checkpolicy x86_64 2.9-1.el8 BaseOS 348 k
  12. Transaction Summary
  13. ================================================================================
  14. Install 1 Package
  15. Total download size: 348 k
  16. Installed size: 1.7 M
  17. Downloading Packages:
  18. checkpolicy-2.9-1.el8.x86_64.rpm 7.5 kB/s | 348 kB 00:46
  19. --------------------------------------------------------------------------------
  20. Total 7.5 kB/s | 348 kB 00:46
  21. Running transaction check
  22. Transaction check succeeded.
  23. Running transaction test
  24. Transaction test succeeded.
  25. Running transaction
  26. Preparing : 1/1
  27. Installing : checkpolicy-2.9-1.el8.x86_64 1/1
  28. Running scriptlet: checkpolicy-2.9-1.el8.x86_64 1/1
  29. Verifying : checkpolicy-2.9-1.el8.x86_64 1/1
  30. Installed:
  31. checkpolicy-2.9-1.el8.x86_64
  32. Complete!

创建一个定制的SELinux策略文件。

  1. [root@mongodb ~]# vi mongodb_cgroup_memory.te

并在其中添加以下指令。

  1. module mongodb_cgroup_memory 1.0;
  2. require {
  3. type cgroup_t;
  4. type mongod_t;
  5. class dir search;
  6. class file { getattr open read };
  7. }
  8. #============= mongod_t ==============
  9. allow mongod_t cgroup_t:dir search;
  10. allow mongod_t cgroup_t:file { getattr open read };

编译并应用此SELinux策略。

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

MongoDB中创建管理员用户:

默认情况下,MongoDB服务器中未启用访问控制,因此任何人都可以访问MongoDB服务器并执行管理操作。

因此,非常重要的是,我们创建一个Admin用户并在MongoDB服务器中启用访问控制。

如下连接MongoDB shell。

  1. [root@mongodb ~]# mongo
  2. MongoDB shell version v4.4.2
  3. connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
  4. Implicit session: session { "id" : UUID("42a1e2d9-cd5c-42bf-93c1-f007b07ec356") }
  5. MongoDB server version: 4.4.2
  6. Welcome to the MongoDB shell.
  7. For interactive help, type "help".
  8. For more comprehensive documentation, see
  9. https://docs.mongodb.com/
  10. Questions? Try the MongoDB Developer Community Forums
  11. https://community.mongodb.com
  12. ---
  13. The server generated these startup warnings when booting:
  14. 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
  15. ---
  16. ---
  17. Enable MongoDB's free cloud-based monitoring service, which will then receive and display
  18. metrics about your deployment (disk utilization, CPU, operation statistics, etc).
  19. The monitoring data will be available on a MongoDB website with a unique URL accessible to you
  20. and anyone you share the URL with. MongoDB may use this information to make product
  21. improvements and to suggest MongoDB products and deployment options to you.
  22. To enable free monitoring, run the following command: db.enableFreeMonitoring()
  23. To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
  24. ---
  25. >

管理数据库连接。

  1. > use admin;
  2. switched to db admin
  3. >

如下创建管理员用户。

  1. > db.createUser(
  2. ... {
  3. ... user: "admin",
  4. ... pwd: "liang123",
  5. ... roles: [ { role: "userAdminAnyDatabase",db: "admin" } ]
  6. ... }
  7. ... )
  8. Successfully added user: {
  9. "user" : "admin",
  10. "roles" : [
  11. {
  12. "role" : "userAdminAnyDatabase",
  13. "db" : "admin"
  14. }
  15. ]
  16. }

列出MongoDB数据库中的所有用户。

  1. > show users
  2. {
  3. "_id" : "admin.admin",
  4. "userId" : UUID("26d81b7b-f86a-4507-aa75-015cb0e02a11"),
  5. "user" : "admin",
  6. "db" : "admin",
  7. "roles" : [
  8. {
  9. "role" : "userAdminAnyDatabase",
  10. "db" : "admin"
  11. }
  12. ],
  13. "mechanisms" : [
  14. "SCRAM-SHA-1",
  15. "SCRAM-SHA-256"
  16. ]
  17. }
  18. >

MongoDB管理员用户已成功创建。

MongoDB Shell退出。

  1. > exit
  2. bye

MongoDB服务器中启用访问控制:

最初,访问控制在MongoDB服务器中被禁用。因此,任何具有CentOS 8服务器操作系统级访问权限的用户都可以连接到MongoDB实例并在数据库上执行管理操作。这就是为什么我们能够在上一步中创建管理员用户而无需任何身份验证的原因。

要为MongoDB服务器启用访问控制,我们需要为mongod.service编辑systemd单元文件。

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

在此文件中找到以下行。

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

并将其替换为以下行。

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

我们已经使用文本编辑器显式地编辑了systemd单位文件。因此,我们需要执行以下命令来通知systemd有关此更改。

  1. [root@mongodb ~]# systemctl daemon-reload

重新启动MongoDB服务以应用更改。

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

要检查访问控制,请连接MongoDB shell并执行一些管理命令。

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

这次“ show user”命令引发身份验证错误,它确认在我们的MongoDB服务器中已启用访问控制

现在,以管理员用户身份连接。

  1. > db.auth("admin",passwordPrompt())
  2. Enter password: ###输入我们前面设置的是密码
  3. 1

现在,执行相同的命令,以检查其是否正常运行。

  1. > show users #查询用户信息
  2. {
  3. "_id" : "admin.admin",
  4. "userId" : UUID("26d81b7b-f86a-4507-aa75-015cb0e02a11"),
  5. "user" : "admin",
  6. "db" : "admin",
  7. "roles" : [
  8. {
  9. "role" : "userAdminAnyDatabase",
  10. "db" : "admin"
  11. }
  12. ],
  13. "mechanisms" : [
  14. "SCRAM-SHA-1",
  15. "SCRAM-SHA-256"
  16. ]
  17. }
  18. > exit
  19. bye
  20. [root@mongodb ~]#

已成功使用特权用户执行命令“显示用户”

MongoDB数据库的访问控制已启用。

配置MongoDB服务以进行网络访问:

此步骤是可选的。如果您打算通过网络访问MongoDB数据库,则必须执行以下配置。

默认情况下,MongoDB服务在本地主机接口上运行。因此,要使其能够从网络访问,我们需要在所有接口上运行MongoDB服务。

使用vim编辑器编辑MongoDB配置文件

  1. [root@mongodb ~]# cat /etc/mongod.conf | grep bind
  2. 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.
  3. [root@mongodb ~]# vi /etc/mongod.conf
  4. [root@mongodb ~]# netstat -anptl | grep mongod
  5. tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 931395/mongod
  6. [root@mongodb ~]# systemctl restart mongod.service
  7. [root@mongodb ~]# netstat -anptl | grep mongod
  8. tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 931722/mongod
  9. [root@mongodb ~]#

在此文件中找到bindIp指令并将其设置为。

修改 bind_ip 127.0.0.1 为 bind_ip = 0.0.0.0 或者注释掉, #bind_ip 127.0.0.1, 让其监听所有外网ip。

  1. bindIp: 0.0.0.0

重新启动MongoDB服务以应用更改。

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

如果我们启动了防火墙策略,还需要允许Linux防火墙中的MongoDB服务传入流量。

  1. [root@mongodb ~]#firewall-cmd --permanent --add-service=mongodb
  2. success
  3. [root@mongodb ~]# firewall-cmd --reload
  4. 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的数据库管理员。

原文链接:http://www.cnblogs.com/lianglab/p/14157585.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号