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

MongoDB安装_第1张图片
single_02.png

复制集安装

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

|复制集名称|节点信息|

|:--|---:|

|myReplSet|192.168.56.101:27007|

|myReplSet|192.168.56.101:27008|

|myReplSet|192.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

MongoDB安装_第2张图片
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

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

MongoDB安装_第3张图片
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" }

      ]

  }

)

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

MongoDB安装_第4张图片
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端口,

复制集具体内容如下表:

|复制集名 |节点信息|

|:-----|--------:|

|confogRepl|192.168.56.101:27001|

|confogRepl|192.168.56.101:27002|

|confogRepl|192.168.56.101:27003|

|shard1Repl|192.168.56.101:27017|

|shard1Repl|192.168.56.101:27018|

|shard1Repl|192.168.56.101:27019|

|shard2Repl|192.168.56.101:27027|

|shard2Repl|192.168.56.101:27028|

|shard2Repl|192.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

MongoDB安装_第5张图片
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

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

MongoDB安装_第6张图片
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" }

      ]

  }

)

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

MongoDB安装_第7张图片
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" }

      ]

  }

)

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

MongoDB安装_第8张图片
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" }

      ]

  }

)

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

MongoDB安装_第9张图片
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")

执行效果图:

MongoDB安装_第10张图片
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安装)