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

安装手册英文版在这里

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何像专家一样高效使用搜索引擎?适用于百度Baidu、谷歌Google

你几乎可以在互联网上搜索到任何内容,而Google是大多数人选择搜索信息的主要途径之一。 尽管频繁地使用Google,但是大部分互联网用户都不知道如何快速和高效地使用Google搜索。 可以说使用Google是一门艺术。 想要获得正确的答案,你需要提出正确的问题。想要快速地获得正…

黑豹程序员-SpringBoot中整合knife4j接口文档

1、Knife介绍 黑豹程序员-架构师学习路线图-百科&#xff1a;Knife4j API接口文档管理 2、坐标 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>2.0.7</version&…

原神游戏干货分享:探索璃月的宝箱秘密,提高游戏资源获取效率!

《原神》是一款备受玩家喜爱的开放世界冒险游戏&#xff0c;而在游戏中获取资源是提升角色实力的重要途径。在这篇实用干货分享中&#xff0c;我们将介绍一些探索璃月地区的宝箱秘密&#xff0c;帮助你提高游戏资源获取的效率。 首先&#xff0c;璃月地区的宝箱分为普通宝箱和精…

潼南柠檬产业发展大会举行 这三个场景“柠”聚了人气

华龙网讯&#xff08;首席记者 羊华&#xff09;今&#xff08;6&#xff09;日下午&#xff0c;2023中国潼南柠檬产业发展大会正式举行。潼南区准备了“大礼包”&#xff0c;既有专业论坛峰会&#xff0c;也首发了“柠檬产业大脑”&#xff0c;还进行了招商引资集中签约&#…

机组 CPU

控制器&#xff1a;协调并控制计算机各部件执行程序的指令序列&#xff0c;其基本功能是取指令、分析指令和执行指令 功能 CPU 必须具有控制程序的顺序执行&#xff08;指令控制&#xff09;、产生完成每条指令所需的控制命令&#xff08;操作控制&#xff09;、对各种操作加…

C#,数值计算——函数计算,Dfridr的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 通过Ridders的多项式外推方法返回函数func在点x处的导数。 /// 输入值h作为估计的初始步长&#xff1b;它不需要很小&#xff0c;而是应为x上的增量&#xff0c; /// 在此增…

SpringBoot测试类启动web环境-上篇

1.坐标修改 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> 2.测试类测试 说明&#xff1a;SpringBootTest()中的webEnvironment值的说明&#xff1b; 2.1不启…

数据结构-图的存储

邻接矩阵法 #define MaxVertexNum 100 //顶点数目的最大值 typedef struct{char Vex[MaxVertexNum]; //顶点表int Edge[MaxVertexNum][MaxVertexNum]; //邻接矩阵&#xff0c;边表int vexnum,arcnum; //图的当前顶点数和边数 }MGraph;无向图 第i个顶点的度第i行&#xff08;或第…

第四章:人工智能深度学习教程-激活函数(第四节-深入理解激活函数)

什么是激活函数&#xff1f; 在人工神经网络中&#xff0c;节点的激活函数定义了该节点或神经元对于给定输入或一组输入的输出。然后将该输出用作下一个节点的输入&#xff0c;依此类推&#xff0c;直到找到原始问题的所需解决方案。 它将结果值映射到所需的范围&#xff0c;例…

Redis系列-四种部署方式-单机部署+主从模式+哨兵模式【7】

目录 Redis系列-四种部署方式-单机部署主从模式【7】redis-四种部署模式单机模式主从模式数据同步的方式全量数据同步增量数据同步 Redis哨兵模式总结缺点&#xff1a;哨兵模式应用sentinel.conf配置项 REF 个人主页: 【⭐️个人主页】 需要您的【&#x1f496; 点赞关注】支持…

web3 React dapp项目通过事件从区块链中拿到 已取消 已完成 和所有的订单数据 并存入redux中

好 上文web3通过antd 在React dapp中构建订单组件基本结构我们算是把一个基本的订单组件展示做出来了 然后 我们继续 起一下环境先 ganache 终端运行 ganache -dMetaMask 登录一下 然后 打开项目 发布一下合约 truffle migrate --reset然后 运行一下 测试脚本 转入交易所 E…

「我在淘天做技术」音视频技术及其在淘宝内容业务中的应用

作者&#xff1a;李凯 一、前言 近年来&#xff0c;内容电商似乎已经充分融入到人们的生活中&#xff1a;在闲暇时间&#xff0c;我们已经习惯于拿出手机&#xff0c;从电商平台的直播间、或者短视频链接下单自己心仪的商品。 尽管优质的货品、实惠的价格、精致的布景、有趣的…

【MySQL数据库】| 索引以及背后的数据结构

&#x1f397;️ 主页&#xff1a;小夜时雨 &#x1f397;️ 专栏&#xff1a;MySQL数据库 &#x1f397;️ 如何优雅的活着&#xff0c;是我找寻的方向 目录 1. 基本知识2. 索引背后的数据结构总结 1. 基本知识 概念 索引是一种特殊的文件&#xff0c;包含着对数据表里所有…

Leetcode刷题详解—— 找出所有子集的异或总和再求和

1. 题目链接&#xff1a;1863. 找出所有子集的异或总和再求和 2. 题目描述&#xff1a; 一个数组的 异或总和 定义为数组中所有元素按位 XOR 的结果&#xff1b;如果数组为 空 &#xff0c;则异或总和为 0 。 例如&#xff0c;数组 [2,5,6] 的 异或总和 为 2 XOR 5 XOR 6 1 。…

95 课程表

课程表 题解1 BFS&#xff08;拓扑图模板&#xff09;题解2 DFS 你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, bi] &am…

【halcon】halcon 函数文件 以及 脚本引擎如何调用外部函数文件 上篇

前言 halcon有几种文件&#xff1a; 本地程序函数&#xff08;.hdev&#xff09;外部函数文件&#xff08;.hdvp)库函数(.hdp) 说多了容易混淆&#xff0c;今天就说&#xff0c;我觉得最有用的&#xff1a;外部函数文件&#xff08;.hdvp) 步骤 先写一段halcon脚本&#x…

php冒泡算法实现倒序和正序排列

冒泡排序是一种简单的排序算法&#xff0c;其主要思想是比较相邻的两个元素&#xff0c;根据需要交换位置&#xff0c;将较大&#xff08;或较小&#xff09;的元素逐渐冒泡到数组的一端&#xff0c;从而实现排序。 1、从小到大排序 function bubbleSort($arr) {$len count(…

剪贴板管理软件 Paste Wizard mac中文版功能特色

Paste Wizard mac是一款剪贴板管理工具&#xff0c;它可以帮助用户更高效地管理剪贴板中的文本、图片、链接等内容。 Paste Wizard mac特色功能 提供了多种方式来保存和管理剪贴板中的内容。用户可以创建自定义的标签&#xff0c;将内容按照标签进行分类&#xff0c;方便快速查…

springboot,spring框架返回204 status code的时候,会吞掉返回值

背景 发现有个有意思的现象&#xff0c;就是当你的接口返回204的 HTTP status code 的时候&#xff0c;会自动把 response body 吃掉&#xff0c;即使代码里是有返回的。例如 &#xff08;其实204本身就是NO_CONTENT的意思&#xff0c;不过我是真没想到真干掉了返回&#xff0…

5G-A 商用加速,赋能工业互联网

2019 年 6 月&#xff0c;中国工业和信息化部发放 5G 商用牌照。同年 10 月&#xff0c;三大运营商公布 5G 商用套餐&#xff0c;11 月 1 日正式上线 5G 商用套餐&#xff0c;标志中国正式进入 5G 商用新纪元。今年是 5G 商用的第五年&#xff0c;在当前数字经济蓬勃发展的催化…