MongoDB安装(mongodb安装失败如何彻底删除)

时光闹钟app开发者,请关注我,后续分享更精彩!

坚持原创,共同进步!

概述

MongoDB是一个可扩展,高性能,开源,面向文档的,基于键/值类型的数据库。非常适合保存大对象及json格式的数据。本文将介绍MongoDB的单机和集群副本安装,记录下来以备后用。希望对有需要的朋友有所帮助和参考。

下载地址

# 历史产品和版本选择 https://www.mongodb.com/docs/legacy/ # 3.6版本文档地址 https://www.mongodb.com/docs/v3.6/

安装方式

  • StandAlone:单机环境,一般开发测试的时候用。
  • Replication:主从结构,一个Primary,多个Secondary,可能会有Arbitry。
- Primary挂掉之后,会选举出一个Secondary作为Primary,与zookeeper类似。 - Arbitry(仲裁节点)上面不存数据,只是为了凑数。选举算法要求节点数必须是奇数个,如果Primary+Secondary不是奇数个,就要用Arbitry凑数。 - 写数据只能在Primary,读数据默认也在Primary,可以配置成从Secondary读,可以选最近的节点。 - 数据在Primary上写成功之后,会将操作记录在oplog中,Secondary将oplog拷贝过去,然后照着操作一遍,就有数据了。 - Primary和Secondary上面的数据保证最终一致性,可以为写操作配置write concern,有几个级别:在Primary上写完就认为写成功;写到oplog后认为写成功;写到一个/多个/某个/某几个Secondary之后认为写成功,等等。
  • Sharding:share nothing的结构,每台机器只存一部分数据。mongod服务器存数据,mongos服务器负责路由读写请求,元数据存在config数据库中。

安装&准备

centos 系统 yum源创建

cat >/etc/yum.repos.d/mongodb-org-3.6.repo<<eof [mongodb-org-3.6] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/6Server/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc eof

根据具体情况,选择版本安装

# 安装最近版本 # sudo yum install -y mongodb-org # 安装指定版本 sudo yum install --disablerepo=kubernetes -y mongodb-org-3.6.8 mongodb-org-server-3.6.8 mongodb-org-shell-3.6.8 mongodb-org-mongos-3.6.8 mongodb-org-tools-3.6.8

StandAlone安装配置

默认配置文件/etc/mongod.conf

- storage.dbPath 数据存储目录 - systemLog.path 系统日志目录 - net.bindIp 访问ip绑定,默认127.0.0.1。需要外部机器连接时,需调整成新人的访问源ip,或者测试所有ip放开0.0.0.0

启动MongoDB

sudo systemctl start mongod # 如果启动报如下报错 # Failed to start mongod.service: Unit mongod.service not found. # 启动以下命令 # sudo systemctl daemon-reload

查看MongoDB状态

sudo systemctl status mongod # 如果想要重启系统MongoDB服务自动启动,可设置以下命令 # sudo systemctl enable mongod

停止MongoDB

sudo systemctl stop mongod

重启MongoDB

sudo systemctl restart mongod

连接MongoDB

mongo --host 127.0.0.1:27017

Replication安装

参考文档

官方文档:https://www.mongodb.com/docs/v3.6/administration/replica-set-deployment/

环境

3个节点分别安装MongoDB实例

修改/etc/mongod.conf以下配置项:

#replica set的名字 replication: replSetName: "rs0" #client访问ip绑定,开发测试0.0.0.0所有ip net: bindIp: localhost,<ip address> 

分别在3个节点上启动MongoDB服务

sudo systemctl start mongod # 如果启动报如下报错 # Failed to start mongod.service: Unit mongod.service not found. # 启动以下命令 # sudo systemctl daemon-reload

Initiate the replica set(初始化副本集)

任意一个节点控制台登录MongoDB

[[email protected] ~]# mongo MongoDB shell version v3.6.8 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.6.8 Server has startup warnings: 2022-05-11T09:36:02.035+0800 I CONTROL [initandlisten] 2022-05-11T09:36:02.035+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2022-05-11T09:36:02.035+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2022-05-11T09:36:02.035+0800 I CONTROL [initandlisten] 2022-05-11T09:36:02.035+0800 I CONTROL [initandlisten] 2022-05-11T09:36:02.035+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2022-05-11T09:36:02.035+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2022-05-11T09:36:02.035+0800 I CONTROL [initandlisten] 2022-05-11T09:36:02.035+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2022-05-11T09:36:02.035+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2022-05-11T09:36:02.035+0800 I CONTROL [initandlisten] 2022-05-11T09:36:02.035+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files. 2022-05-11T09:36:02.035+0800 I CONTROL [initandlisten] >

初始化副本集。 注:只需在集群一台机器上执行初始化命令。

rs.initiate( { _id : "rs0", members: [ { _id: 0, host: "dev2:27017" }, { _id: 1, host: "dev3:27017" }, { _id: 2, host: "dev4:27017" } ] })

执行结果如下:

> rs.initiate( { ... _id : "rs0", ... members: [ ... { _id: 0, host: "dev2:27017" }, ... { _id: 1, host: "dev3:27017" }, ... { _id: 2, host: "dev4:27017" } ... ] ... }) { "ok" : 1, "operationTime" : Timestamp(1653010782, 1), "$clusterTime" : { "clusterTime" : Timestamp(1653010782, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } }

查看配置结果:控制台执行以下指令

rs.conf()

附录

# 历史产品和版本选择 https://www.mongodb.com/docs/legacy/ # 3.6版本文档地址 https://www.mongodb.com/docs/v3.6/ #官方文档: https://www.mongodb.com/docs/v3.6/administration/replica-set-deployment/ # 3.6社区版centos安装文档 https://www.mongodb.com/docs/v3.6/tutorial/install-mongodb-on-red-hat/ # MongoDB集群安装 https://www.cnblogs.com/seasonzone/p/3820762.html

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注