centos7下安装主从仲裁三台结构的MongoDB 7.0.4

news2024/11/27 23:49:07

安装手册英文版在这里

https://www.mongodb.com/docs/v7.0/tutorial/install-mongodb-on-red-hat/

我的安装过程

1)基础安装


1、创建 /etc/yum.repos.d/mongodb-org-7.0.repo文件
下面的代码复制到这个文件中,保存

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

2、yum安装

yum install -y mongodb-org

会看到安装一大堆的内容
注意两个事情
第一,MongoDB默认用的mongod的账号去启动资源,如果有permission deny的报错,找到目录,执行chown -R mongod:mongod 目录
第二,配置文件默认放在/etc/mongod.conf,这里可以设置日志和数据文件地址,如果你改了,记得按照第一条把新的目录改属主为mongod

3、关闭SELinux,设置SELinux状态

setenforce 0

不执行上述命令,改了属主也没有用
要想重启后生效,需要改文件vim /etc/selinux/config,SELINUX=enforcing改成SELINUX=permissive

4、启动

systemctl start mongod

5、用客户端连接试试

mongosh

看到一大堆输出,就进去了

Current Mongosh Log ID: 6516b6
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.0.1
Using MongoDB:          7.0.1
Using Mongosh:          2.0.1

For mongosh info see: https://docs.mongodb.com/mongodb-shell/
To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy).
You can opt-out by running the disableTelemetry() command.
   The server generated these startup warnings when booting
   2023-09-29T19:27:11.183+08:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
   2023-09-29T19:27:11.495+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
   2023-09-29T19:27:11.496+08:00: You are running on a NUMA machine. We suggest launching mongod like this to avoid performance problems: numactl --interleave=all mongod [other options]
   2023-09-29T19:27:11.497+08:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
   2023-09-29T19:27:11.497+08:00: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never'
   2023-09-29T19:27:11.497+08:00: vm.max_map_count is too low
------

test>

6、重启试试
reboot,然后看看服务起来没有,systemctl status mongod
正常

2)集群安装


上面是单机,也没有密码,下面部署集群,记得先把主、从、仲裁都按照上面步骤装好

7、改配置文件
先把三个机器的MongoDB服务停了,找到/etc/mongod.conf,修改

replication:
  replSetName: hep22

然后启动服务

8、给防火墙开端口

firewall-cmd --permanent --add-port=27017/tcp
firewall-cmd --reload

不开端口连不上

9、初始化主
在主上进入MongoDB,执行mongosh,然后执行

rs.initiate({
  _id: "hepee",
  members:[ 
       {_id:0,host:"10.15.32.130:27017",priority:5}
       ]
 })

priority:5越高等级越高,你希望谁是主,就把谁设高
设置完可以看一下情况

rs.conf()

10、增加从
还是在主服务器上操作哈

rs.add({
_id: 1,host:"10.15.32.131:27017",priority:4
})

11、增加仲裁

rs.add({
_id: 2,host:"10.15.32.132:27017",arbiterOnly:true
})

增加的时候报错,Reconfig attempted to install a config that would change the implicit default write concern,执行下面语句

db.adminCommand({
  "setDefaultRWConcern" : 1,
  "defaultWriteConcern" : {
    "w" : 2
  }
})

再增加仲裁机,就好了

12、复查

rs.conf()
rs.status()
show dbs

增加一条记录试试

use test
db.test.insert({name:"mongo"})
show dbs

注意:一定要切换数据库
这时能看到多了个test数据库,说明成功了
到从上看看,看到secondary了,这是从,看到了test数据库,已经同步过来了
在这里插入图片描述

3)安全认证


为了安全,要配置一下安全认证,不然对所有人都是敞开的
mongodb4.0以上不支持TLS1.0,改支持1.1

请注意版本,mongodb不同版本参数,命令会有细微不同,所以得试,看哪个命令好使

keyfile白话说就是一个记事本,存放这一串字符,就可以当做秘钥。 keyfile是用于mongodb集群内部成员认证用的。

先建个最高级别账号,否则后面怕进不来

db.createUser({user:"root",pwd:"XXX0",roles: [ { role: "root", db: "admin" } ]})
  • 创建keyfile
openssl rand -base64 756 > /data/mongoDB/internal.key

chmod 400 /data/mongoDB/internal.key

chown mongod.mongod /data/mongoDB/internal.key

将此keyfile拷贝到其他两台主机相同目录下。

  • 配置Keyfile

修改/etc/mongod.conf文件,增加副本集与安全配置:主要是security:里面这两句

net:
  port: 27017
  bindIp: 0.0.0.0  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.

security:
   keyFile: /data/mongoDB/internal.key
   authorization: enabled

#operationProfiling:

把三台机器都设置好,然后重启服务,重启记得顺序,先起从节点,仲裁,最后起主节点

  • 连接

此时用mongosh连接,不会报错,能进,但是进去干不了啥,会出错,得用用户名、密码进去才正常

mongosh -u root -p

用前面创建的账号进入
插入个数据吧

  • 远程连接

此时从远程连接,没密码进入执行啥命令,就提示要授权,只有用账号密码进去了,执行才能成功

use 
db.cicatDb.insertOne({name:"mongo"})
show dbs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1188191.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RBF、GMM、FUZZY

感觉这三种方法有联系,RBF用多个加权高斯拟合值函数,GMM用多个加权高斯拟合联合分布函数,GMM的加权相比于概率更像FUZZY里的隶属度,并且FUZZY的不同规则实现的就是一定程度的聚类。 一、RBF 资料:https://blog.csdn…

JAVA使用Grafana和Loki抓取聚合日志

Grafana和Loki抓取聚合日志 适用范围配置常见问题参考文章 适用范围 Grafana是日志看板Loki是Grafana的一个插件用于收集日志promtail是Loki配套的抓取工具,放在目标服务器抓取日志 配置 日志服务器安装Grafana,傻瓜式下一步日志服务器启动Loki&#…

CRM系统中的客户保留是什么意思?有多少客户可以留下来?

一家企业,在销售过程中有多少客户是有效的?又有多少客户可以留下来?如果企业只顾着开发新客户,而忽略了客户保留,那么将会造成资源的浪费。那么CRM系统中的客户保留是什么意思? 什么是客户保留&#xff1f…

单调栈【2023年最新】

做题的时候看到了单调栈,但是不知道是个什么玩意,记录一下吧。 单调栈含义 单调栈是一种特殊的数据结构,用于解决一些与单调性相关的问题。它的基本含义是在栈的基础上,维护一个单调递增或单调递减的栈。 在单调递增栈中&#…

caffe搭建squeezenet网络的整套工程

之前用pytorch构建了squeezenet,个人觉得pytorch是最好用的,但是有的工程就是需要caffe结构的,所以本篇也用caffe构建一个squeezenet网络。 数据处理 首先要对数据进行处理,跟pytorch不同,pytorch读取数据只需要给数据…

第六章《凸优化核心过程:真正搞懂梯度下降过程》

优化问题可以分为凸优化问题和非凸优化问题,凸优化问题是指定义在凸集中的凸函数最优化的问题,典型应用场景就是 目标函数极值问题的求解。凸优化问题的局部最优解就是全局最优解,因此 机器学习中很多非凸优化问题都需要被转化为等价凸优化问…

【链接装载与库】动态链接(下)

动态链接 》上篇《 延迟绑定 (PLT) 动态链接的确有很多优势,比静态链接要灵活得多,但它是以牺牲一部分性能为代价的。主要原因是动态链接下对于全局和静态的数据访问都要进行复杂的GOT定位,然后间接寻址;对于模块间的调用也要先…

Go RabbitMQ简介 使用

RabbitMQ简介 RabbitMQ 是一个广泛使用的开源消息队列系统,它实现了高级消息队列协议(AMQP)标准,为分布式应用程序提供了强大的消息传递功能。RabbitMQ 是 Erlang 语言编写的,具有高度的可扩展性和可靠性,…

普洱茶上市?澜沧古茶通过港股聆讯

近日,澜沧古茶成功通过港交所聆讯,随后在11月7日披露了相关资料集。该公司即将在港交所主板上市,此次上市由中信建投国际和招商证券国际担任联席保荐人。据了解,澜沧古茶或将成为内地茶企第一股,也将成为“普洱茶第一股…

el-form-item的label的长度单独改掉,用vue3样式穿透的写法,加上css选择器查找特定的id拿到元素

为了让这个会员卡号这几个字和下面的表格对齐,需要改el-form-item的label的长度 如果直接改el-form的label-width,那么所有的el-form-item的label都会改,我不希望这样 我希望只改第1个会员卡号的label长度 给这个el-form-item添加一个id :deep(.el-for…

漏洞复现--泛微E-Office信息泄露(CVE-2023-2766)

免责声明: 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

xshell隧道设置

现在有远程外网地址 120.120.120.120和另一台内网地址192.168.1.110两台cvm 但是192.168.1.110 无法直接通过外网地址访问, 需要通过120.120.120.120建立隧道来连接 需要访问192.168.1.110 机器的3306端口, 可以这么做 将192.168.1.110 的3306映射到本地13306端口 1.连接外网…

YOLOv8-Seg改进:多尺度空洞注意力(MSDA),增强局部、稀疏提取特征能力

🚀🚀🚀本文改进: 新的注意力机制——多尺度空洞注意力(MSDA)。MSDA 能够模拟小范围内的局部和稀疏的图像块交互; 如何在OLOv8-seg下使用:1)作为注意力机制放在各个网络位置;2)与C2f结合替代原始的C2f 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLS…

人工智能辅助职业教育发展——开启教育新时代

人工智能辅助职业教育发展——开启教育新时代 随着科技的飞速发展,人工智能(AI)逐渐渗透到各行各业,并在许多领域发挥着重要作用。如今,AI的应用已经延伸到职业教育领域,为培养高素质人才提供了新的可能和动…

用户交互引导大模型生成内容特征,LLM-Rec框架助力个性化推荐!

欢迎来到魔法宝库,传递AIGC的前沿知识,做有格调的分享❗ 喜欢的话记得点个关注吧! 今天主要和大家分享一篇使用大语言模型做数据增强来提升推荐系统性能的研究 标题: LLM-Rec: Personalized Recommendation via Prompting Large …

2023软件测试必问的100个面试题【含答案】

一、测试理论 1.什么是软件测试? 答:软件测试是通过执行预定的步骤和使用指定的数据,以确定软件系统在特定条件下是否满足预期的行为。 2.测试驱动开发(TDD)是什么? 答:测试驱动开发是一种开…

基于情感分析+聚类分析+LDA主题分析对服装产品类的消费者评论分析(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

MKL.NET:为.NET开发者提供高性能数学计算支持的开源库

目录 01 项目简介02 主要功能03 项目结构04 项目地址 MKL是英特尔推出的一套功能强大、性能优化的数学库,主要是采用C/C编写的。今天给大家推荐一个MKL的.Net版本,让我们无需与C/C打交道,方便我们集成到应用开发中去。 01 项目简介 MKL.NET…

智能机器人云控平台

智能机器人云控平台主要是通过打造一个低速固定场景下的机器人自主完成既定作业的模式。整体平台融合的自动化驾驶感知终端,物联网通信,数据接入中心,数据管理中心,模型中心及开放中心等,以一个云平台来掌控多个多种不…

ElementUI的Dialog弹窗实现拖拽移动功能

实现ElementUI的Dialog弹窗可以拖拽移动 实现步骤: 1.创建自定义指令 在utils文件夹下新建文件夹 utils/directive/el-dragDialog/index.js import drag from ./dragconst install function(Vue) {Vue.directive(el-drag-dialog, drag) }if (window.Vue) {windo…