您的位置:首页 > 房产 > 家装 > 财务咨询公司_营业推广_教育培训机构报名_软件推广接单平台

财务咨询公司_营业推广_教育培训机构报名_软件推广接单平台

2025/3/9 23:22:59 来源:https://blog.csdn.net/weixin_53510183/article/details/144418844  浏览:    关键词:财务咨询公司_营业推广_教育培训机构报名_软件推广接单平台
财务咨询公司_营业推广_教育培训机构报名_软件推广接单平台

简介

MongoDB是一个开源的、跨平台的、分布式的NoSQL(非SQL或非关系型)数据库系统。与传统SQL数据库不同,MongoDB不使用表格存储数据,而是使用灵活的文档来存储各种数据形式。MongoDB使用二进制JSON格式BSON来存储数据。

MongoDB是一个具有内置高可用性、自动故障转移和数据冗余的分布式NoSQL数据库,通过在分布式集群中进行分片来实现水平扩展。它支持多区域地理部署,并提供支持CRUD操作(读写)、数据聚合管道、文本搜索和地理空间查询的查询API。

在本指南中,我们将向你展示如何在Ubuntu 22.04服务器上安装MongoDB。你将准备你的Ubuntu服务器,添加MongoDB仓库,安装MongoDB服务器,为MongoDB创建管理员,并启用MongoDB认证。最后,你将学习如何使用’mongosh’ shell在MongoDB中创建用户和数据库。

接下来,我将一步一步教大家如何进行安装和部署!!

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。

https://img-blog.csdnimg.cn/img_convert/4c16271f125adea69da6ed9e7b2a4226.png

  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。

https://img-blog.csdnimg.cn/img_convert/414570cd3da48d4cc4bf51489992000b.png

  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。

https://img-blog.csdnimg.cn/img_convert/c8afbeb764459a37a8451dd2ed8eeff1.png

  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。

https://img-blog.csdnimg.cn/img_convert/ea5814f1d1068ca9fa2bb94631cfbdf1.png

  • 到此为止,我们的云服务器就远程连接上了。

开始部署

准备系统

在你的Ubuntu系统上安装MongoDB之前,请确保你已配置系统。在这种情况下,你将使用以下配置Ubuntu服务器:

  • 通过systemd禁用透明大页面 (THP)
  • 增加默认MongoDB mongod用户的上限
  • 通过/etc/sysctl.conf文件设置最大fs.file-max和启用swappiness

禁用透明大页面 (THP)

要在系统上禁用THP,你将创建一个新的systemd服务文件,该文件将在每次启动时自动执行。

使用nano编辑器创建一个新的服务文件/etc/systemd/system/disable-thp.service

sudo nano /etc/systemd/system/disable-thp.service

插入以下配置以通过服务禁用THP。

[Unit]
Description=Disable Transparent Huge Pages (THP)[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"[Install]
WantedBy=multi-user.target

保存文件并退出编辑器。

现在运行以下systemctl命令重新加载systemd管理器,启动并启用disable-thp服务。这样,THP将在系统启动时被禁用。

sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp.service

设置Ulimits

禁用THP后,你需要将用户mongod的默认最大文件和进程数增加到至少64000

使用以下nano编辑器命令创建新文件/etc/security/limits.d/mongodb.conf

sudo nano /etc/security/limits.d/mongodb.conf

插入以下配置将最大文件打开和进程数增加到64000

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

保存文件并退出编辑器。

设置swappiness和fs.file-max

最后,你需要增加默认fs.file-max并为MongoDB启用swappiness。为此,你将编辑/etc/sysctl.conf文件。

使用nano编辑器命令打开文件/etc/sysctl.conf

sudo nano /etc/sysctl.conf

插入以下配置设置fs.file-max并启用swappiness。

fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1

完成后,保存文件并退出编辑器。

现在运行以下sysctl命令应用更改而不重启。

sudo sysctl -p

image.png

使用APT包管理器安装MongoDB

现在你已经配置了Ubuntu系统,准备安装MongoDB。在本节中,你将从官方MongoDB仓库安装最新版本的MongoDB 8.0。

首先,运行以下apt命令更新你的Ubuntu包索引并安装gnupgcurl包。输入’Y’确认安装。

sudo apt update && sudo apt install gnupg curl

image.png

现在运行以下命令添加MongoDB的GPG密钥和仓库。在这个例子中,你将在Ubuntu 22.04服务器上安装MongoDB 8。

curl -fsSL <https://www.mongodb.org/static/pgp/server-8.0.asc> | \\
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \\
--dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] <https://repo.mongodb.org/apt/ubuntu> noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

image.png

接下来,运行以下apt命令更新你的包索引并安装mongodb-org包到你的系统。输入’Y’继续安装。

sudo apt update && sudo apt install mongodb-org

image.png

安装完成后,执行以下systemctl命令重新加载systemd管理器。mongod服务已添加到你的Ubuntu系统。

sudo systemctl daemon-reload

最后,运行以下命令启动、启用并验证MongoDB mongod服务。你将看到MongoDB在你的系统上运行。

sudo systemctl enable --now mongod
sudo systemctl status mongod

image.png

保护MongoDB服务器

安装MongoDB后,你将通过以下步骤保护MongoDB服务器安装:

  • 使用mongosh shell为MongoDB创建一个新的管理员用户
  • 通过编辑配置/etc/mongod.conf文件启用MongoDB认证

创建MongoDB管理员用户

在本节中,你将通过mongosh shell为MongoDB创建一个新的管理员用户。mongosh shell是一个客户端命令行,用于与MongoDB服务器交互,它类似于MySQL/MariaDB的mysql和PostgreSQL的psql

要创建管理员用户,请使用以下mongosh shell命令登录到MongoDB服务器。

mongosh

现在运行以下查询禁用MongoDB遥测。

disableTelemetry()

image.png

接下来,转到数据库admin并运行以下查询为MongoDB创建一个新的管理员用户。在这个例子中,你将创建一个新用户myAdmin,然后系统会提示你输入新密码。

use admin
db.createUser(
{user: "myAdmin",pwd: passwordPrompt(),roles: [{ role: "userAdminAnyDatabase", db: "admin" },{ role: "readWriteAnyDatabase", db: "admin" }]
}
)

现在输入quit()退出MongoDB shell。

启用MongoDB认证

现在你已经创建了MongoDB管理员用户,你可以通过/etc/mongod.conf文件启用MongoDB认证。

使用以下nano编辑器命令打开默认的MongoDB服务器配置/etc/mongod.conf

sudo nano /etc/mongod.conf

添加以下行以在MongoDB中启用认证。

security:authorization: enabled

完成后,保存文件并退出编辑器。

现在运行以下systemctl命令重启MongoDB服务器并应用更改。这样,MongoDB认证将被启用。

sudo systemctl restart mongod

测试MongoDB认证

现在你已经保护了MongoDB服务器安装,让我们通过使用mongosh shell和新管理员用户及密码登录到MongoDB来验证你的配置。

使用以下mongosh命令以用户myAdmin登录到MongoDB服务器。系统会提示你输入密码。

mongosh --port 27017 --authenticationDatabase \\
"admin" -u "myAdmin" -p

登录后,运行以下查询检查你的连接状态。你应该已经使用myAdmin用户登录到MongoDB服务器。

db.runCommand({connectionStatus : 1})

现在输入quit()退出MongoDB服务器。

在MongoDB中创建数据库和用户

在本节中,你将学习如何使用mongosh shell在MongoDB中创建新的数据库和用户。因此,请确保你已经以管理员用户登录到MongoDB。

首先,运行以下查询转到数据库mydb

use mydb

现在运行以下查询创建一个新用户myUser,并允许对数据库mydb进行读写访问。系统会提示你输入密码。

db.createUser(
{user: "myUser",pwd: passwordPrompt(), // or cleartext passwordroles: [ { role: "readWrite", db: "mydb" },{ role: "read", db: "reporting" } ]
}
)

输入quit()退出MongoDB服务器。

现在运行以下mongosh命令以myUser身份登录到数据库mydb。系统会提示你输入密码。

mongosh --port 27017 --authenticationDatabase \\
"mydb" -u "myUser" -p

登录后,使用以下查询检查你的连接状态。

db.runCommand({connectionStatus : 1})

你可以看到你已经使用用户myUser和对数据库mydb的权限连接到了MongoDB服务器。

相关链接

雨云 - 新一代云服务提供商: https://rainyun.ivwv.site

我的博客:https://blog.ivwv.site

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com