如何在CentOS 7上安装和配置MongoDB

MongoDB是提供高性能,高可用性和自动缩放的NoSQL数据库。 NoSQL数据库意味着,与MySQL或PostgreSQL不同,它不支持SQL(结构化查询语言)来检索或操纵存储的数据。 MongoDB不会将数据存储在表中,而是将数据存储在类似于JSON的“文档”结构中(在MongoDB中称为BSON)。 MongoDB是六年前在2009年首次推出的。 目前由MongoDB MongoDB公司开发

在本教程中,我将指导您在CentOS 7服务器上安装和配置MongoDB 3.2(stable)。 我们将为MongoDB添加和配置管理员用户,并配置MongoDB服务的身份验证。

先决条件

  • CentOS 7
  • 根权限

我们将在本教程中做什么:

  1. 添加MongoDB存储库。
  2. 安装MongoDB。
  3. 修复一些MongoDB错误。
  4. 创建管理员用户。
  5. 启用MongoDB身份验证和测试。

第1步 - 在CentOS中添加MongoDB资源库

使用ssh root帐户连接到CentOS 7服务器:

ssh root@192.168.1.100

为了添加新的CentOS存储库,我们需要转到'yum.repos.d'目录。 转到该目录,并使用vim创建新的存储库文件“mongodb-org-3.2.repo”

cd /etc/yum.repos.d/
vim mongodb-org-3.2.repo

粘贴MongoDB存储库配置,如下所示:

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

保存文件并退出编辑器。

第2步 - 安装MongoDB

我们添加了MongoDB存储库,现在检查服务器上的存储库列表,以确保列表中的MongoDB存储库可用。

以root用户身份运行以下命令:

yum repolist

你可以看到下面的结果。 MongoDB存储库在列表中。

接下来,使用yum命令安装MongoDB。

yum -y install mongodb-org

安装完成后,使用这个systemctl命令启动MongoDB:

systemctl start mongod

通过检查端口'27017'是否打开,检查MongoDB是否正在运行。

netstat -plntu

并确保mongodb服务是活动的。

systemctl status mongod

第3步 - 修复MongoDB错误

MongoDB已安装。 现在我们可以使用以下命令访问mongodb shell:

mongo

您可能会在服务器上看到有关ulimit配置的错误。

** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000...

限制或用户限制定义用户可以使用多少系统范围的资源。

为了解决这个问题,我们需要增加用户mongod的ulimit配置。

在CentOS 7服务器上,MongoDB数据库运行在用户'mongod'下。 转到'security'目录并编辑'limits.conf'配置文件。

cd /etc/security/
vim limits.conf

我会将mongod用户的限制增加到“64000” - 进程数或nproc,打开文件数或nofile到64000。

将下面的新配置粘贴到文件的末尾:

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

保存limits.conf文件。

运行下面的sysctl命令将更改的限制应用于系统:

sysctl -p

然后重新启动MongoDB服务,然后重试访问mongo shell,错误现在已经消失了。

systemctl restart mongod
mongo

第4步 - 创建MongoDB管理员用户

在此步骤中,我们将为MongoDB创建一个新的用户“admin”,并从mongo shell中创建角色“UserAdminAnyDatabase”。

打开mongodb shell:

mongo

我将使用密码“admin123”创建名为“admin”的新用户管理员。 请在服务器上使用安全密码。 然后我们将用户的角色配置为“UserAdminAnyDatabase”。

切换到数据库'admin'。

use admin

键入以下MongoDB查询以创建新的管理员用户:

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

接下来,确保用户已经使用下面的MongoDB查询创建了。

show users

MongoDB管理员用户已创建。

第5步 - 在MongoDB中启用用户认证

在此步骤中,我们将启用用户身份验证,以防止没有足够权限的另一个用户能够查看数据库中的数据。

在我们的CentOS 7服务器上,MongoDB在“/etc/init.d/”目录下的systemd下运行init脚本。 我们将编辑该脚本以强制mongodb服务使用'--auth'选项运行。

转到'/etc/init.d/'目录并编辑“mongod”文件:

 
 
cd /etc/init.d/
vim mongod

在第15行,您将找到“OPTION”变量,我们将添加“mongod”选项。

OPTIONS=" --auth -f $CONFIGFILE"

保存文件。

重新加载systemd服务并重新启动MongoDB。

systemctl daemon-reload
systemctl restart mongod

接下来,我们必须通过登录到mongo shell并切换到admin数据库来测试配置,然后尝试看到管理员用户。

mongo

use admin
show users

您将在数据库管理员中看到有关未授权执行该命令的错误。 现在我们需要使用命令'db.auth()'进行身份验证。

db.auth('admin', 'admin123')

现在,您可以看到具有角色和权限的用户。

MongoDB 3.2已在CentOS 7服务器上安装和配置。

链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏