侧边栏壁纸
博主头像
丛庆

没事儿写代码,有事写代码。email:1024@cong.zone

  • 累计撰写 116 篇文章
  • 累计创建 97 个标签
  • 累计收到 4 条评论

【CentOS7】【MongoDB】centos7环境上mongodb单机和集群的部署

丛庆
2022-07-17 / 0 评论 / 0 点赞 / 504 阅读 / 1,365 字 / 正在检测是否收录...
温馨提示:
部分资料和图片来源于网络,如有危害到您的利益请与我联系删除,1024@cong.zone。

本文源于官方文档
https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-red-hat/

系统环境CentOS7
安装工具yum

配置yum包管理系统

创建一个文件

vim /etc/yum.repos.d/mongodb-org-5.0.repo

文件内容

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

image-1657992384499

安装MongoDB的包

安装最新稳定版

sudo yum install -y mongodb-org

安装指定版本MongoDB,单独指定每个组件包并将版本号附加到包名称中

sudo yum install -y mongodb-org-5.0.9 mongodb-org-database-5.0.9 mongodb-org-server-5.0.9 mongodb-org-shell-5.0.9 mongodb-org-mongos-5.0.9 mongodb-org-tools-5.0.9

这里我是用的是固定版本安装

当有更新的版本可用时,yum 会升级MongDB。为防止意外升级,需要固定版本。
请将以下排除指令添加到/etc/yum.conf 文件中用来排除MongoDB的升级

vim /etc/yum.conf

image-1657992709184

排除指令

exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

image-1657992753164

启动MongoDB

大多数类 Unix 操作系统限制了进程可能使用的系统资源。这个限制可能会对 MongoDB 的运行产生一些影响,需要调整一下。从 MongoDB 4.4 开始,如果打开文件数的 ulimit 值低于 64000,则会生成启动错误

默认目录

默认情况下,MongoDB 使用 mongod 用户帐户运行并使用以下默认目录

  • /var/lib/mongo (数据目录)
  • /var/log/mongodb (日志目录)

yum包管理器在安装期间创建默认目录。所有者和组名是 mongod。

 ll | grep mongod

image-1657993954492

配置自定义目录

要使用默认目录以外的数据目录和/或日志目录:

创建一个或多个新目录
编辑配置文件 /etc/mongod.conf 并相应地修改以下字段

vim /etc/mongod.conf

storage.dbPath指定新的数据目录路径 (e.g. /some/data/directory)
systemLog.path 指定新的日志文件路径 (e.g. /some/log/directory/mongod.log)
确保运行 MongoDB 的用户有权访问一个或多个目录:

sudo chown -R mongod:mongod

如果更改运行 MongoDB 进程的用户,则必须授予新用户访问这些目录的权限。

开始启动

初始化系统

要运行和管理您的 mongod 进程,您将使用操作系统的内置 init 系统。

最近版本的 Linux 倾向于使用 systemd(使用 systemctl 命令),
而旧版本的 Linux 倾向于使用 System V init(它使用 service 命令)。

如果您不确定您的平台使用哪个初始化系统,请运行以下命令:

ps --no-headers -o comm 1

image-1657994560947

然后根据结果选择下面的相应选项卡:

  • systemd 阅读下面的 systemd (systemctl)
  • init - 阅读下面的 System V Init

systemctl

启动 MongoDB

sudo systemctl start mongod

image-1657995220435

如果在启动 mongod 时收到类似以下的错误:

Failed to start mongod.service: Unit mongod.service not found.

那么先运行以下命令:

sudo systemctl daemon-reload

再执行启动命令

sudo systemctl start mongod

验证 MongoDB 是否已成功启动。

sudo systemctl status mongod

image-1657995247688

您可以选择通过发出以下命令来确保 MongoDB 将在系统重新启动后启动:

sudo systemctl enable mongod

停止MongoDB

sudo systemctl stop mongod

重启MongoDB

sudo systemctl restart mongod

查看日志

tail -999f /var/log/mongodb/mongod.log

image-1657995273764

开始使用

在与 mongod 相同的主机上启动 mongosh 会话。您可以在没有任何命令行选项的情况下运行 mongosh,以连接到在您的 localhost 上运行的 mongod,默认端口为 27017。

mongosh

image-1657995298557

System V Init

启动 MongoDB

sudo service mongod start

验证 MongoDB 是否已成功启动。

您可以通过检查 /var/log/mongodb/mongod.log 中日志文件的内容来验证 mongod 进程是否已成功启动

您可以选择通过发出以下命令来确保 MongoDB 将在系统重新启动后启动:

sudo chkconfig mongod on

停止MongoDB

sudo service mongod stop

重启MongoDB

sudo service mongod restart

您可以通过查看 /var/log/mongodb/mongod.log 文件中的输出来跟踪错误或重要消息的进程状态。

查看日志

tail -999f /var/log/mongodb/mongod.log

image-1657995273764

开始使用

在与 mongod 相同的主机上启动 mongosh 会话。您可以在没有任何命令行选项的情况下运行 mongosh,以连接到在您的 localhost 上运行的 mongod,默认端口为 27017。

mongosh

image-1657995298557

远程主机连接mongo

默认情况下,MongoDB 启动时 bindIp 设置为 127.0.0.1,它绑定到 localhost 网络接口。这意味着 mongod 只能接受来自在同一台机器上运行的客户端的连接。远程客户端将无法连接到 mongod,并且 mongod 将无法初始化副本集,除非将此值设置为有效的网络接口。

该值可以配置为:
在配置文件中配置bindIp, 或者通过命令行参数 --bind_ip

要绑定到所有 IPv4 地址,可以指定绑定 ip 地址为 0.0.0.0。要绑定到所有 IPv4 和 IPv6 地址,您可以指定绑定 IP 地址 ::,0.0.0.0,或者使用新的 net.bindIpAll 设置或新的命令行选项 --bind_ip_all。

绑定所有的IPv4地址

vim /etc/mongod.conf

image-1657995462872

改成0.0.0.0
image-1657995493711
重启

sudo systemctl restart mongod

image-1657995560887

0

评论区