如何在 CentOS 上安装 MongoDB如何在 CentOS 上安装 MongoDB如何在 CentOS 上安装 MongoDB如何在 CentOS 上安装 MongoDB
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 CentOS 上安装 MongoDB

MongoDB 是一个免费、开源、面向文档的数据库引擎,提供对非关系数据库的访问。 MongoDB 将数据存储在类似 JSON 的文档中以及动态模式,提供比其他数据库更好的性能。 MongoDB 是一个 NoSQL 数据库,这意味着它不支持 SQL 来操作存储的数据。 MongoDB 提供了广泛的功能,例如即席查询、索引、复制、负载平衡、文件存储、聚合、事务等。 MongoDB 是所有系统中最流行的数据库引擎之一,已在多个大型生产环境中使用。

本教程将向您展示如何在 CentOS 8 服务器上安装和使用 MongoDB。

先决条件

  • 运行 CentOS 8 的服务器。
  • 在您的服务器上设置的 root 密码。

安装MongoDB

默认情况下,MongoDB 在 CentOS 8 默认存储库中不可用。因此,您需要将 MongoDB 存储库添加到您的系统中。您可以通过在 /etc/yum.repos.d/ 目录中创建 mongodb.repo 文件来添加它:

nano /etc/yum.repos.d/mongodb.repo

添加以下行:

[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/development/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

保存并关闭文件。然后使用以下命令安装 MongoDB:

dnf install mongodb-org

安装 MongoDB 后,启动 MongoDB 服务并启用它,以便它在系统重新启动后启动:

systemctl start mongod
systemctl enable mongod

现在您可以使用以下命令检查 MongoDB 的状态:

systemctl status mongod

您应该得到以下输出:

systemctl status mongod

输出

? mongod.service - MongoDB Database Server
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-10-28 03:59:12 EDT; 5min ago
     Docs: https://docs.mongodb.org/manual
  Process: 737 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 735 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 732 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 726 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
 Main PID: 914 (mongod)
   Memory: 216.1M
   CGroup: /system.slice/mongod.service
           ??914 /usr/bin/mongod --auth -f /etc/mongod.conf

Oct 28 03:58:14 centos8 systemd[1]: Starting MongoDB Database Server...
Oct 28 03:58:28 centos8 mongod[737]: about to fork child process, waiting until server is ready for connections.
Oct 28 03:58:28 centos8 mongod[737]: forked process: 914
Oct 28 03:59:12 centos8 mongod[737]: child process started successfully, parent exiting
Oct 28 03:59:12 centos8 systemd[1]: Started MongoDB Database Server.

接下来,您可以使用以下命令访问 MongoDB shell:

mongo

您应该得到以下输出:

MongoDB shell version v4.2.1-rc0-5-g87a606d
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("e8e052c8-7c47-4908-9a29-d7825bac037a") }
MongoDB server version: 4.2.1-rc0-5-g87a606d
Server has startup warnings: 
2019-10-28T04:07:55.106-0400 I  CONTROL  [initandlisten] 
2019-10-28T04:07:55.107-0400 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-10-28T04:07:55.107-0400 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2019-10-28T04:07:55.107-0400 I  CONTROL  [initandlisten] 
2019-10-28T04:07:55.107-0400 I  CONTROL  [initandlisten] 
2019-10-28T04:07:55.107-0400 I  CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2019-10-28T04:07:55.107-0400 I  CONTROL  [initandlisten] **        We suggest setting it to 'never'
2019-10-28T04:07:55.107-0400 I  CONTROL  [initandlisten] 
---
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()
---

创建 MongoDB 管理员用户

接下来,为 MongoDB 创建一个具有管理权限的管理员用户。首先,使用以下命令打开 MongoDB shell:

mongo

接下来,将数据库切换到admin,如下所示:

>use admin

接下来,使用以下命令创建一个新的 MongoDB 用户:

> db.createUser(
{
user: "mongodadmin",
pwd: "password123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)

您应该得到以下输出:

Successfully added user: {
	"user" : "mongodadmin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}

接下来,您将使用以下命令指定管理员用户:

>show users

您应该看到以下输出:

{
	"_id" : "admin.mongodadmin",
	"userId" : UUID("f6e908db-e393-44a9-8c77-0fdb1c2baa0e"),
	"user" : "mongodadmin",
	"db" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	],
	"mechanisms" : [
		"SCRAM-SHA-1",
		"SCRAM-SHA-256"
	]
}

配置 MongoDB 身份验证。

默认情况下,MongoDB 允许所有用户访问 MongoDB shell 并执行任何命令。因此,建议配置MongoDB认证,防止其他用户在没有足够权限的情况下运行命令。

首先,您必须通过编辑 /lib/system/system/mongod.service 文件来启用 MongoDB 身份验证。

nano /lib/systemd/system/mongod.service

更改以下行:

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

保存并关闭文件。然后重新加载systemd守护进程并使用以下命令重新启动MongoDB服务:

systemctl --system daemon-reload
systemctl restart mongod

现在登录 MongoDB shell 并尝试查看未经身份验证的用户:

mongo
> use admin
> show users

您应该看到以下错误消息:

2019-10-28T04:13:15.346-0400 E  QUERY    [js] uncaught exception: Error: command usersInfo requires authentication :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.getUsers@src/mongo/shell/db.js:1638:15
shellHelper.show@src/mongo/shell/utils.js:883:9
shellHelper@src/mongo/shell/utils.js:790:15
@(shellhelp2):1:1

现在运行以下命令来验证 MongoDB:

> db.auth('mongodadmin', 'password123')
> show users

在以下输出中,您应该看到管理员用户及其角色:

{
	"_id" : "admin.mongodadmin",
	"userId" : UUID("f6e908db-e393-44a9-8c77-0fdb1c2baa0e"),
	"user" : "mongodadmin",
	"db" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	],
	"mechanisms" : [
		"SCRAM-SHA-1",
		"SCRAM-SHA-256"
	]
}

结论

上面的教程教会了我们如何安装MongoDB并配置MongoDB用户身份验证。我希望您现在拥有足够的知识来创建自己的数据库并使用 MongoDB 开发应用程序。如果您还有任何疑问,请随时与我联系。

©2015-2025 艾丽卡 support@alaica.com