MongoDB安装

本次安装操作系统:CentOS7.4,数据库版本:3.6.2企业版

  • 系统升级及依赖安装

# 更新软件包,我的是最小安装的centos7.4(建议操作)

$ yum update

# 安装依赖(必须安装)

$ yum install net-snmp

单实例安装

创建用户及目录


# 切换用户root

$ su root

# 创建用户:mongo_single

$ adduser mongo_single

# 创建日志目录

$ mkdir -p /data/log

# 创建数据库目录

$ mkdir -p /data/db

# 将目录归属者变更为mongo_single

$ chown mongo_single:mongo_single /data/log /data/db

下载及解压


# 切换用户mongo_single

$ su mongo_single

# 切换到目录/home/mongo_single下

$ cd

# 使用wget下载下载软件包

$ wget https://downloads.mongodb.com/linux/mongodb-linux-x86_64-enterprise-rhel70-3.6.2.tgz

# 解压

$ tar -xzvf mongodb-linux-x86_64-enterprise-rhel70-3.6.2.tgz

# 更改解压后目录名称

$ mv mongodb-linux-x86_64-enterprise-rhel70-3.6.2 mongodb3.6.2

创建配置文件

官方配置文档: https://docs.mongodb.com/manual/reference/configuration-options/


$ cd mongodb3.6.2/

$ vim mongod.cfg

配置文件内容


systemLog:

    destination: file

#配置日志所在位置

    path: /data/log/mongod.log

storage:

#配置数据所在位置

    dbPath: /data/db

net:

#配置IP(自行更改),若不配置访问不通,3.6起新特性

  bindIp: 127.0.0.1,192.168.56.101

  port: 27017

#以后台进程方式启动fork=true

processManagement:

  fork: true

创建启动脚本


# 切换路径到/home/mongo_single

$ cd

$ vim run_mongod.sh

启动脚本文件内容


mongodb3.6.2/bin/mongod --config mongodb3.6.2/mongod.cfg

启动MongoDB


$ chmod 751 run_mongod.sh

$ ./run_mongod.sh

如果启动正常会显示以下内容:


[mongo_single@localhost ~]$ ./run_mongod.sh

about to fork child process, waiting until server is ready for connections.

forked process: 21053

child process started successfully, parent exiting

验证是否启动

  • 端口查看验证

# 已监听27017端口,则启动成功!

$ ss -tanl

single_01.png

  • 登入验证

# 能正常登入,则安装成功!

$ mongodb3.6.2/bin/mongo

single_02.png

复制集安装

使用用户mongo_repl,复制集信息如下:

复制集名称节点信息
myReplSet192.168.56.101:27007
myReplSet192.168.56.101:27008
myReplSet192.168.56.101:27008

创建用户及目录


# 切换root用户

$ su root

# 创建用户mongo_repl

$ adduser mongo_repl

# 创建日志目录

$ mkdir -p /data/log07 /data/log08 /data/log09

# 创建数据库目录

$ mkdir -p /data/db07 /data/db08 /data/db09

# 将目录归属者变更为mongo_repl

$ chown mongo_repl:mongo_repl /data/log07 /data/log08 /data/log09 /data/db07 /data/db08 /data/db09

# 查看目录信息

$ ls -l /data

repl_01.png

下载解压


# 切换用户

$ su mongo_repl

# 切换到目录/home/mongo_repl下

$ cd

#使用wget下载下载软件包

$ wget https://downloads.mongodb.com/linux/mongodb-linux-x86_64-enterprise-rhel70-3.6.2.tgz

# 解压

$ tar -xzvf mongodb-linux-x86_64-enterprise-rhel70-3.6.2.tgz

# 更改解压后目录名称

$ mv mongodb-linux-x86_64-enterprise-rhel70-3.6.2 mongodb3.6.2

创建配置文件

官方配置文档: https://docs.mongodb.com/manual/reference/configuration-options/

创建命令


$ cd mongodb3.6.2/

# 分别创建mongod07.cfg,mongod08.cfg,mongod09.cfg

$ vim mongod07.cfg

$ vim mongod08.cfg

$ vim mongod09.cfg

mongod07.cfg内容


systemLog:

    destination: file

#配置日志所在位置

    path: /data/log07/mongod.log

storage:

#配置数据所在位置

    dbPath: /data/db07

net:

#配置IP(自行更改),若不配置访问不通,3.6起新特性

  bindIp: 127.0.0.1,192.168.56.101

  port: 27007

#以后台进程方式启动fork=true

processManagement:

  fork: true

#副本集配置

replication:

  oplogSizeMB: 1024

  replSetName: myReplSet

mongod08.cfg内容


systemLog:

    destination: file

#配置日志所在位置

    path: /data/log08/mongod.log

storage:

#配置数据所在位置

    dbPath: /data/db08

net:

#配置IP(自行更改),若不配置访问不通,3.6起新特性

  bindIp: 127.0.0.1,192.168.56.101

  port: 27008

#以后台进程方式启动fork=true

processManagement:

  fork: true

#副本集配置

replication:

  oplogSizeMB: 1024

  replSetName: myReplSet

mongod09.cfg内容


systemLog:

    destination: file

#配置日志所在位置

    path: /data/log09/mongod.log

storage:

#配置数据所在位置

    dbPath: /data/db09

net:

#配置IP(自行更改),若不配置访问不通,3.6起新特性

  bindIp: 127.0.0.1,192.168.56.101

  port: 27009

#以后台进程方式启动fork=true

processManagement:

  fork: true

#副本集配置

replication:

  oplogSizeMB: 1024

  replSetName: myReplSet

创建启动脚本

创建命令


# 切换到目录/home/mongo_repl

$ cd

# 分别创建启动脚本run_mongod07.sh,run_mongod08.sh,run_mongod09.sh

$ vim run_mongod07.sh

$ vim run_mongod08.sh

$ vim run_mongod09.sh

run_mongod07.sh内容


mongodb3.6.2/bin/mongod --config mongodb3.6.2/mongod07.cfg

run_mongod08.sh内容


mongodb3.6.2/bin/mongod --config mongodb3.6.2/mongod08.cfg

run_mongod09.sh内容


mongodb3.6.2/bin/mongod --config mongodb3.6.2/mongod09.cfg

启动MongoDB


$ chmod 751 run_mongod07.sh

$ chmod 751 run_mongod08.sh

$ chmod 751 run_mongod09.sh

$ ./run_mongod07.sh

$ ./run_mongod08.sh

$ ./run_mongod09.sh

如果启动正常会显示以下内容:

repl_02.png

复制集配置


# 连接27007端口的mongodb,-host:IP地址,-port:端口

$ mongodb3.6.2/bin/mongo -host 192.168.56.101 -port 27007

# 复制集初始化

rs.initiate(

  {

      _id: "myReplSet",

      version: 1,

      members: [

        { _id: 0, host : "192.168.56.101:27007" },

        { _id: 1, host : "192.168.56.101:27008" },

        { _id: 2, host : "192.168.56.101:27009" }

      ]

  }

)

如果出现下图则复制集安装成功!

repl_03.png

复制集常用命令

常用命令可以通过rs.help()获取

官方文档:https://docs.mongodb.com/manual/reference/method/js-replication/

命令介绍
rs.status()查看复制集状态
rs.initiate(cfg)初始化复制集,本教程采用此方式
rs.conf()获取复制集配置信息
rs.reconfig(cfg)更新复制集的配置信息
rs.add(hostportstr)向复制集添加一个新节点
rs.remove(hostportstr)从复制集移除一个节点
rs.stepDown主节点主动放弃主节点位置,提升其余节点为主节点
rs.slaveOk()允许从节点查询,默认从节点无法查询
rs.printReplicationInfo()查看oplog信息
rs.printSlaveReplicationInfo()查看从节点延时
db.isMaster()查看谁为主节点

分片安装

概述

使用用户mongo_shard,mongos使用30000端口,

复制集具体内容如下表:

复制集名节点信息
confogRepl192.168.56.101:27001
confogRepl192.168.56.101:27002
confogRepl192.168.56.101:27003
shard1Repl192.168.56.101:27017
shard1Repl192.168.56.101:27018
shard1Repl192.168.56.101:27019
shard2Repl192.168.56.101:27027
shard2Repl192.168.56.101:27028
shard2Repl192.168.56.101:27029

创建用户及目录


# 切换root用户

$ su root

# 用户名可随意起,此处使用mongo_shard

$ adduser mongo_shard

# 创建日志目录

$ mkdir -p /data/logs /data/log01 /data/log02 /data/log03 /data/log17 /data/log18 /data/log19 /data/log27 /data/log28 /data/log29

# 创建数据库目录

$ mkdir -p /data/db01 /data/db02 /data/db03 /data/db17 /data/db18 /data/db19 /data/db27 /data/db28 /data/db29

# 将目录归属者变更为mongo_shard

$ cd /data

$ chown mongo_shard:mongo_shard logs log01 log02 log03 log17 log18 log19 log27 log28 log29 db01 db02 db03 db17 db18 db19 db27 db28 db29

# 查看目录信息

$ ls -l /data

shard_01.png

下载解压


# 切换用户

$ su mongo_shard

# 切换到目录/home/mongo_shard

$ cd

#使用wget下载下载软件包

$ wget https://downloads.mongodb.com/linux/mongodb-linux-x86_64-enterprise-rhel70-3.6.2.tgz

# 解压

$ tar -xzvf mongodb-linux-x86_64-enterprise-rhel70-3.6.2.tgz

# 更改解压后目录名称

$ mv mongodb-linux-x86_64-enterprise-rhel70-3.6.2 mongodb3.6.2

创建配置文件

官方配置文档: https://docs.mongodb.com/manual/reference/configuration-options/

复制集configRepl配置文件

创建命令

$ cd mongodb3.6.2/

# 创建复制集configRepl的三个配置文件mongod01.cfg,mongod02.cfg,mongod03.cfg

$ vim mongod01.cfg

$ vim mongod02.cfg

$ vim mongod03.cfg

mongod01.cfg内容

systemLog:

    destination: file

#配置日志所在位置

    path: /data/log01/mongod.log

storage:

#配置数据所在位置

    dbPath: /data/db01

net:

#配置IP(自行更改),若不配置访问不通,3.6起新特性

  bindIp: 127.0.0.1,192.168.56.101

  port: 27001

#以后台进程方式启动fork=true

processManagement:

  fork: true

#副本集配置

replication:

  oplogSizeMB: 1024

  replSetName: configRepl

#shard配置,角色为配置服务器

sharding:

  clusterRole: configsvr

mongod02.cfg内容

systemLog:

    destination: file

#配置日志所在位置

    path: /data/log02/mongod.log

storage:

#配置数据所在位置

    dbPath: /data/db02

net:

#配置IP(自行更改),若不配置访问不通,3.6起新特性

  bindIp: 127.0.0.1,192.168.56.101

  port: 27002

#以后台进程方式启动fork=true

processManagement:

  fork: true

#副本集配置

replication:

  oplogSizeMB: 1024

  replSetName: configRepl

#shard配置,角色为配置服务器

sharding:

  clusterRole: configsvr

mongod03.cfg内容

systemLog:

    destination: file

#配置日志所在位置

    path: /data/log03/mongod.log

storage:

#配置数据所在位置

    dbPath: /data/db03

net:

#配置IP(自行更改),若不配置访问不通,3.6起新特性

  bindIp: 127.0.0.1,192.168.56.101

  port: 27003

#以后台进程方式启动fork=true

processManagement:

  fork: true

#副本集配置

replication:

  oplogSizeMB: 1024

  replSetName: configRepl

#shard配置,角色为配置服务器

sharding:

  clusterRole: configsvr

复制集shard1Repl配置文件

创建命令

# 创建复制集shard1Repl的三个配置文件mongod17.cfg,mongod18.cfg,mongod19.cfg

$ vim mongod17.cfg

$ vim mongod18.cfg

$ vim mongod19.cfg

mongod17.cfg内容

systemLog:

    destination: file

#配置日志所在位置

    path: /data/log17/mongod.log

storage:

#配置数据所在位置

    dbPath: /data/db17

net:

#配置IP(自行更改),若不配置访问不通,3.6起新特性

  bindIp: 127.0.0.1,192.168.56.101

  port: 27017

#以后台进程方式启动fork=true

processManagement:

  fork: true

#副本集配置

replication:

  oplogSizeMB: 1024

  replSetName: shard1Repl

#shard配置,角色为分片服务器

sharding:

  clusterRole: shardsvr

mongod18.cfg内容

systemLog:

    destination: file

#配置日志所在位置

    path: /data/log18/mongod.log

storage:

#配置数据所在位置

    dbPath: /data/db18

net:

#配置IP(自行更改),若不配置访问不通,3.6起新特性

  bindIp: 127.0.0.1,192.168.56.101

  port: 27018

#以后台进程方式启动fork=true

processManagement:

  fork: true

#副本集配置

replication:

  oplogSizeMB: 1024

  replSetName: shard1Repl

#shard配置,角色为分片服务器

sharding:

  clusterRole: shardsvr

mongod19.cfg内容

systemLog:

    destination: file

#配置日志所在位置

    path: /data/log19/mongod.log

storage:

#配置数据所在位置

    dbPath: /data/db19

net:

#配置IP(自行更改),若不配置访问不通,3.6起新特性

  bindIp: 127.0.0.1,192.168.56.101

  port: 27019

#以后台进程方式启动fork=true

processManagement:

  fork: true

#副本集配置

replication:

  oplogSizeMB: 1024

  replSetName: shard1Repl

#shard配置,角色为分片服务器

sharding:

  clusterRole: shardsvr

复制集shard2Repl配置文件

创建命令

# 创建复制集shard2Repl的三个配置文件mongod27.cfg,mongod28.cfg,mongod29.cfg

$ vim mongod27.cfg

$ vim mongod28.cfg

$ vim mongod29.cfg

mongod27.cfg内容

systemLog:

    destination: file

#配置日志所在位置

    path: /data/log27/mongod.log

storage:

#配置数据所在位置

    dbPath: /data/db27

net:

#配置IP(自行更改),若不配置访问不通,3.6起新特性

  bindIp: 127.0.0.1,192.168.56.101

  port: 27027

#以后台进程方式启动fork=true

processManagement:

  fork: true

#副本集配置

replication:

  oplogSizeMB: 1024

  replSetName: shard2Repl

#shard配置,角色为分片服务器

sharding:

  clusterRole: shardsvr

mongod28.cfg内容

systemLog:

    destination: file

#配置日志所在位置

    path: /data/log28/mongod.log

storage:

#配置数据所在位置

    dbPath: /data/db28

net:

#配置IP(自行更改),若不配置访问不通,3.6起新特性

  bindIp: 127.0.0.1,192.168.56.101

  port: 27028

#以后台进程方式启动fork=true

processManagement:

  fork: true

#副本集配置

replication:

  oplogSizeMB: 1024

  replSetName: shard2Repl

#shard配置,角色为分片服务器

sharding:

  clusterRole: shardsvr

mongod29.cfg内容

systemLog:

    destination: file

#配置日志所在位置

    path: /data/log29/mongod.log

storage:

#配置数据所在位置

    dbPath: /data/db29

net:

#配置IP(自行更改),若不配置访问不通,3.6起新特性

  bindIp: 127.0.0.1,192.168.56.101

  port: 27029

#以后台进程方式启动fork=true

processManagement:

  fork: true

#副本集配置

replication:

  oplogSizeMB: 1024

  replSetName: shard2Repl

#shard配置,角色为分片服务器

sharding:

  clusterRole: shardsvr

mongos配置文件

创建命令

# 创建mongos配置文件mongos.cfg

$ vim mongos.cfg

mongos.cfg内容

systemLog:

    destination: file

    path: /data/logs/mongos.log

processManagement:

    fork: true

net:

    bindIp: 192.168.56.101

    port: 30000

sharding:

    configDB: configRepl/192.168.56.101:27001,192.168.56.101:27002,192.168.56.101:27003

创建启动脚本

复制集configRepl启动脚本

创建命令

# 切换到目录/home/mongo_shard

$ cd

# 创建configRepl的三个run_mongod01.sh,run_mongod02.sh,run_mongod03.sh

$ vim run_mongod01.sh

$ vim run_mongod02.sh

$ vim run_mongod03.sh

run_mongod01.sh内容

mongodb3.6.2/bin/mongod --config mongodb3.6.2/mongod01.cfg

run_mongod02.sh内容

mongodb3.6.2/bin/mongod --config mongodb3.6.2/mongod02.cfg

run_mongod03.sh内容

mongodb3.6.2/bin/mongod --config mongodb3.6.2/mongod03.cfg

复制集shard1Repl启动脚本

创建命令

# 创建shard1Repl的三个run_mongod17.sh,run_mongod18.sh,run_mongod19.sh

$ vim run_mongod17.sh

$ vim run_mongod18.sh

$ vim run_mongod19.sh

run_mongod17.sh内容

mongodb3.6.2/bin/mongod --config mongodb3.6.2/mongod17.cfg

run_mongod18.sh内容

mongodb3.6.2/bin/mongod --config mongodb3.6.2/mongod18.cfg

run_mongod19.sh内容

mongodb3.6.2/bin/mongod --config mongodb3.6.2/mongod19.cfg

复制集shard2Repl启动脚本

创建命令

# 创建shard2Repl的三个run_mongod27.sh,run_mongod28.sh,run_mongod29.sh

$ vim run_mongod27.sh

$ vim run_mongod28.sh

$ vim run_mongod29.sh

run_mongod27.sh内容

mongodb3.6.2/bin/mongod --config mongodb3.6.2/mongod27.cfg

run_mongod28.sh内容

mongodb3.6.2/bin/mongod --config mongodb3.6.2/mongod28.cfg

run_mongod29.sh内容

mongodb3.6.2/bin/mongod --config mongodb3.6.2/mongod29.cfg

mongos启动脚本

创建命令

# 创建mongos启动脚本run_mongos.sh

$ vim run_mongos.sh

run_mongos.sh内容

mongodb3.6.2/bin/mongos --config mongodb3.6.2/mongos.cfg

启动MongoDB


$ chmod 751 run_mongod01.sh run_mongod02.sh run_mongod03.sh run_mongod17.sh run_mongod18.sh run_mongod19.sh run_mongod27.sh run_mongod28.sh run_mongod29.sh run_mongos.sh

$ ./run_mongod01.sh

$ ./run_mongod02.sh

$ ./run_mongod03.sh

$ ./run_mongod17.sh

$ ./run_mongod18.sh

$ ./run_mongod19.sh

$ ./run_mongod27.sh

$ ./run_mongod28.sh

$ ./run_mongod29.sh

如果启动正常会显示以下内容:

shard_02.png

复制集配置

初始化configRepl


# 连接27001端口的mongodb,-host:IP地址,-port:端口

$ mongodb3.6.2/bin/mongo -host 192.168.56.101 -port 27001

# 复制集初始化

rs.initiate(

  {

      _id: "configRepl",

      version: 1,

      members: [

        { _id: 0, host : "192.168.56.101:27001" },

        { _id: 1, host : "192.168.56.101:27002" },

        { _id: 2, host : "192.168.56.101:27003" }

      ]

  }

)

如果出现下图则复制集安装成功!

shard_03.png

初始化shard1Repl


# 按Ctrl+c断开mongo连接

# 连接27017端口的mongodb,-host:IP地址,-port:端口

$ mongodb3.6.2/bin/mongo -host 192.168.56.101 -port 27017

# 复制集初始化

rs.initiate(

  {

      _id: "shard1Repl",

      version: 1,

      members: [

        { _id: 0, host : "192.168.56.101:27017" },

        { _id: 1, host : "192.168.56.101:27018" },

        { _id: 2, host : "192.168.56.101:27019" }

      ]

  }

)

如果出现下图则复制集安装成功!

shard_03_1.png

初始化shard2Repl


# 按Ctrl+c断开mongo连接

# 连接27027端口的mongodb,-host:IP地址,-port:端口

$ mongodb3.6.2/bin/mongo -host 192.168.56.101 -port 27027

# 复制集初始化

rs.initiate(

  {

      _id: "shard2Repl",

      version: 1,

      members: [

        { _id: 0, host : "192.168.56.101:27027" },

        { _id: 1, host : "192.168.56.101:27028" },

        { _id: 2, host : "192.168.56.101:27029" }

      ]

  }

)

如果出现下图则复制集安装成功!

shard_03_2.png

启动Mongos


$ ./run_mongos.sh

如果出现下图则mongos启动成功~

shard_04.png

配置分片


# 连接到mongos

$ mongodb3.6.2/bin/mongo -host 192.168.56.101 -port 30000

# 添加分片

MongoDB Enterprise mongos> sh.addShard("shard1Repl/192.168.56.101:27017")

MongoDB Enterprise mongos> sh.addShard("shard2Repl/192.168.56.101:27027")

执行效果图:

shard_05.png

至此,分片安装结束!

分片常用命令

常用命令可以通过sh.help()获取

官方文档:https://docs.mongodb.com/manual/reference/method/js-sharding/

命令介绍
sh.addShard(host)向集群中添加分片
sh.enableSharding(dbname)开启某一数据库的分片功能
sh.getBalancerState()获取均衡器状态
sh.setBalancerState(false)设置均衡器状态
sh.shardCollection(fullName,key,unique,options)设置集合分片策略
sh.addShardTag(“shardName”, “tagName”);添加tag
sh.addTagRange();设定tag范围
安装 MongoDB,你可以按照以下步骤进行操作: 1. 前往 MongoDB 官方网站(https://www.mongodb.com/try/download/community)下载适合你操作系统的 MongoDB 安装程序。 2. 根据你的操作系统,选择合适的安装程序。如果你使用的是 Windows,选择 MSI 安装程序;如果你使用的是 macOS,选择 TGZ 压缩文件;如果你使用的是 Linux,选择对应的发行版安装包。 3. 下载完成后,运行安装程序,并按照提示进行安装。在 Windows 上,只需双击 MSI 安装程序并按照向导进行安装;在 macOS 上,解压 TGZ 压缩文件并将解压后的文件夹移动到合适的位置;在 Linux 上,使用适当的包管理器进行安装。 4. 安装完成后,你可以选择将 MongoDB 的可执行文件路径添加到系统环境变量中,这样你就可以在任何位置使用 `mongod` 和 `mongo` 命令了。 5. 启动 MongoDB 服务。在 Windows 上,可以通过服务管理器启动 MongoDB 服务;在 macOS 和 Linux 上,打开终端并运行 `mongod` 命令启动 MongoDB 服务。 6. 运行 `mongo` 命令,连接到 MongoDB 数据库服务器。默认情况下,MongoDB 使用本地主机上的端口 27017 进行连接。 完成以上步骤后,你就成功安装MongoDB。你可以使用 `mongo` 命令行工具或者 MongoDB 的官方驱动程序来进行数据库操作。如果你需要更多详细的信息,可以参考 MongoDB 官方文档(https://docs.mongodb.com)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值