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.1For 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 booting2023-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-filesystem2023-09-29T19:27:11.495+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted2023-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.keychmod 400 /data/mongoDB/internal.keychown mongod.mongod /data/mongoDB/internal.key

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

  • 配置Keyfile

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

net:port: 27017bindIp: 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.keyauthorization: enabled#operationProfiling:

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

  • 连接

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

mongosh -u root -p

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

  • 远程连接

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

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

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

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

相关文章

大模型+人形机器人,用AI唤起钢筋铁骨

《经济参考报》11月8日刊发文章《多方布局人形机器人赛道,智能应用前景广》。文章称,工信部日前印发的《人形机器人创新发展指导意见》,按照谋划三年、展望五年的时间安排,对人形机器人创新发展作了战略部署。 从开发基于人工智能大模型的人…

【CASS精品教程】cass3d 11.0加载超大影像、三维模型、点云数据

CAD2016+CASS11.0(内置3d)下载与安装: 【CASS精品教程】CAD2016+CASS11.0安装教程(附CASS11.0安装包下载)https://geostorm.blog.csdn.net/article/details/132392530 一、cass11.0 3d支持的数据 cass11.0中的3d模块增加了多种数据的支持,主要有: 1. 三维模型 点击…

CSS实现透明度效果的两种方法—— opacity 和 rgba()

在实际开发过程中&#xff0c;为了给用户呈现一些效果&#xff0c;我们需要控制元素的透明度。CSS 提供了 opacity 属性和 rgba() 函数给我们控制透明度&#xff0c;接下来通过一个例子来感受一下两种方法的区别。 <style>.transparentBox {display: inline-block;width…

AI驱动的软件测试,何时可以信赖?

综合编译&#xff5c;TesterHome社区 作者&#xff5c;Yuliya Vasilko&#xff0c;数据工程师 以下为作者观点&#xff1a; 越来越多的组织转向人工智能&#xff08;AI&#xff09;驱动的测试解决方案&#xff0c;以简化质量保证流程并提高软件可靠性。 随着对人工智能的依赖程…

功能案例 -- 拖拽上传文件,生成缩略图

直接看效果 实现代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>拖拽上传文件</title>&l…

低价寄快递寄件微信小程序 实际商用版,对接了低价快递渠道,运营平台赚取差价,支持市面上全部主流快递

盈利模式 快递代下CPS就是用户通过线上的渠道&#xff08;快递小程序&#xff09;&#xff0c;线上下单寄快递来赚取差价&#xff0c;例如你的成本价是5元&#xff0c;你在后台比例设置里面设置 首重利润是1元&#xff0c;续重0.5元&#xff0c;用户下1kg的单页面显示的就是6元…

ElasticSearch知识点

什么是ElasticSearch ElasticSearch: 智能搜索&#xff0c;分布式的搜索引擎&#xff0c;是ELK的一个非常完善的产品&#xff0c;ELK代表的是: E就是ElasticSearch&#xff0c;L就是Logstach&#xff0c;K就是kibana Elasticsearch是一个建立在全文搜索引擎 Apache Lucene基础…

FreeRTOS源码阅读笔记2--list.c

list.c中主要完成列表数据结构的操作&#xff0c;有列表和列表项的初始化、列表的插入和移除。 2.1列表初始化vListInitialise() 2.1.1函数原型 void vListInitialise( List_t * const pxList ) pxList&#xff1a;列表指针&#xff0c;指向要初始化的列表。 2.1.2函数框架…

联系作者方式的教程

首先你应该目前是在付费资源运行效果的展示文章页面&#xff0c;如下所示 然后一直往下滑&#xff0c;滑到这个文章的最下面&#xff0c;就可以看到我的推广名片&#xff0c;最后点击这个名片就可以获取到我的联系方式了~

学习OpenCV(蝴蝶书/C++)相关——2.MacOS下使用LLDB调试cpp程序

文章目录 1. VScode中的调试2. 配置VSCode中C++的调试(以OpenCV为例)2.1 创建适用于C++的.launch文件2.2 常见参数说明2.3 调试OpenCV的.launch文件示例2.3.1 .launch文件demo2.3.2 Debug模式的可执行文件3. 联合task.json文件一起使用3.1 创建tasks.json和launch.json文件3.2 …

安装纯净版Linux后的必备设置

目录 一&#xff1a;网络设置 1&#xff0c;设置yum源 2&#xff0c;配置网络 二&#xff1a;samba服务设置 1&#xff0c;安装samba 2&#xff0c;设置samba 3&#xff0c;windows上挂载 三&#xff1a;安装必备的开发软件 1&#xff0c;GCC安装 2&#xff0c;Pyth…

JLink edu mini 10Pin接口定义

注意&#xff1a;SWD接口在阵脚2&#xff0c;4&#xff1b;而20Pin的SWD接口在阵脚7&#xff0c;9 参考&#xff1a;1 官网资料&#xff1b; 2 【润石RS0104YQ Demo开发板测试分享】J-Link EDU Mini调试5V系统_国产运算放大器_模拟开关_线性稳压器_电平转换器_小逻辑_比较器…

Linux之基本指令操作

1、whoami whoami&#xff1a;查看当前账号是谁 2、who who&#xff1a;查看当前我的系统当中有哪些用户&#xff0c;当前有哪些人登录了我的机器 3、 pwd pwd&#xff1a;查看我当前所处的目录&#xff0c;就好比Windows下的路径 4、ls ls&#xff1a;查看当前目录下的文件信…

Doris:多源数据目录(Multi-Catalog)

目录 1.基本概念 2.基本操作 2.1 查看 Catalog 2.2 新增 Catalog 2.3 切换 Catalog 2.4 删除 Catalog 3.元数据更新 3.1手动刷新 3.2定时刷新 3.3自动刷新 4.JDBC Catalog 4.1 上传mysql驱动包 4.2 创建mysql catalog 4.3. 读取mysql数据 1.基本概念 …

【MySQL】列属性

文章目录 CHAR和VARCHAR插入单行 INSERT INTO插入多行插入分层行 LAST_INSERT_IN()创建表复制 CREAT TABLE AS更新单行 UPDATE...SET更新多行在UPDATES中使用子查询【需着重复习】删除行 DELETE恢复数据库到原始状态 CHAR和VARCHAR CHAR(50)&#xff1a;存储文本占5个字符&…

Vatee万腾科技决策力的未来展望:开创数字化创新的新高度

随着科技不断演进&#xff0c;Vatee万腾的科技决策力在数字化创新领域展现出了强大的潜力和前瞻性。 Vatee万腾的科技决策力被视为数字化创新的引擎&#xff0c;为未来创新注入了新的动力。通过深刻的市场洞察和科学决策&#xff0c;Vatee万腾致力于推动数字化创新走向新的高度…

算法导论6:摊还分析,显式与隐式

P258 摊还分析概念 聚合分析&#xff0c;利用它&#xff0c;我们证明对于n&#xff0c;一个n个操作的序列最坏情况下的花费的总时间为T(n)&#xff0c;因此&#xff0c;在最坏情况下&#xff0c;每个操作的平均代价&#xff08;摊还代价&#xff09;为T(n)/n 举了例子来形容这…

C#中.NET 7.0控制台应用使用LINQtoSQL、LINQtoXML

目录 一、新建控制台应用和数据库连接 二、手动添加System.Data.Linq程序包 三、手动添加System.Data.SqlClient程序包 四、再次操作DataClasses1.dbml 五、示例 1.源码 2.xml文件 默认安装的.NET 7.0控制台应用是不支持使用LINQtoSQL、LINQtoXML的。 默认安装的.NET F…

自动驾驶学习笔记(八)——路线规划

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 路线规划 路由元素 路径搜索 最优…

【安卓13】谷歌原生桌面launcher3源码修改,修改桌面布局(首屏应用、小部件、导航栏、大屏设备任务栏)

前言 近期接到一个关于谷歌EDLA认证的需求&#xff0c;我负责的是谷歌原生桌面布局的修改&#xff0c;通过研究源码&#xff0c;将涉及到了一些修改思路发出来&#xff0c;大家可以参考一下有没有对你有用的信息。主要修改内容有&#xff1a; 1、搜索栏、底部导航栏未居中 2、…