Mongodb安装及集群建立(离线版)

目标:

    在三个节点(服务器)上部署mongondb,并建立集群

一:资源下载

mongondb安装包下载,下附下载地址:

https://www.mongodb.com/download-center#production

二:创建mongodb用户

新建mongodb的用户:

#   useradd mongodb

三:解压安装mongodb:

将下载后的压缩包放置到服务器解压:

这里解压即可,无需安装, 图为解压之后的文件

#   tar -zxvf mongodb-linux-x86_64-rhel62-3.4.4.tgz


其他两个节点也是一样,将mongodb解压到服务器上

mongodb-linux-x86_64-rhel62-3.4.4/

在该目录下新建  conf  用来存放配置文件,并在该conf目录下新建 mong.conf 配置文件,三个节点都要做

四:配置文件:

配置文件结构:

-conf目录下的

    --mongo.conf    mongodb的配置文件

    --mongodb_keyfile    mongodb集群认证文件

需要创建这两个配置文件(三个节点都要做)

mongodb集群认证文件生成>>>>>>>生成的认证文件放到三个节点):

一次生成,放到三个节点上

    openssl rand -base64 1024> /data/mongodb-keyfile

mongo.conf 配置文件内容如下:

复制粘贴,然后修改关键信息即可

———————————————————— mongod.conf——————————————————————–

# mongod.conf

# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /opt/mongodata/log/mongod.log        #    数据库日志目录(必须指定)

# Where and how to store data.
storage:
dbPath: /opt/mongodata/data                #    数据存放目录(必须指定)
journal:        
enabled: true
# engine:
# mmapv1:
# wiredTiger:

# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /opt/mongodb/conf/cecond_mongod.pid   #location of pidfile  该文件启动mongo自动生成

# network interfaces
net:
port: 37017  #端口
# bindIp: 127.0.0.1,127.0.0.128,127.0.0.129 # Listen to local interface only, comment to listen on all interfaces.

security:
keyFile: /opt/mongodb/conf/cecond_mongodb_keyfile  #mongo集群的认证文件

#operationProfiling:

replication:
replSetName: replset      #此为集群的统一名称,三个节点都一样

#sharding:

主要修改的内容项:

path: /opt/mongodata/log/mongod.log  #日志目录

dbPath: /opt/mongodata/data  #数据目录

pidFilePath: /opt/mongodb/conf/cecond_mongod.pid  #pid

port: 37017 #端口

keyFile: /opt/mongodb/conf/cecond_mongodb_keyfile#认证(为之后建立集群准备)

replSetName: replset #集群名(为之后建立集群准备)

五:mongdb集群建立:

确保三个节点成功安装并启动mongodb之后,就可以配置集群

任意节点登陆mongodb执行

     #    mongo –port=37017        #    登录

三个节点进行勾连:

执行以下语句:

> rs.initiate(

{

_id : “replset0”,

members: [

{ _id : 0, host : “仲裁节点IP:37017”, arbiterOnly : true },             //仲裁节点

{ _id : 1, host : “主节点IP:37017” },                                   //主节点

{ _id : 2, host : “副节点IP:37017” }                                    //副节点

]

}

)

在进行副本集勾连时报错如下:

这里没有贴 ErrorMessage大概意思就是说其中一个节点拒绝连接,反正记得按照下面步骤把这个关闭就好

原因:

    防火墙、SELINUX阻挡了连接

解决:

1、关闭防火墙:    centos7的防火墙是firewall,注意命令和.6的不一样。

2、关闭SELINUX: >>>>   vi /etc/sysconfig/selinux  ;

      末尾追加     SELINUX=disabled

六:查看集群状态

在三个节点都启动了Mongodb之后执行rs.status()检查状态:

结果如下:

rs.status();
{
“set” : “newco”,
“date” : ISODate(“2014-05-20T18:10:53Z”),
“myState” : 1,
“members” : [
{
“_id” : 0,
“name” : “replset “,                         #集群名称
“health” : 1,                                #状态
“state” : 2,
“stateStr” : “SECONDARY“,                    #节点类型
“uptime” : 1149,
“optime” : Timestamp(1399640630, 1),
“optimeDate” : ISODate(“2014-05-09T13:03:50Z”),
“lastHeartbeat” : ISODate(“2014-05-20T18:10:51Z”),
“lastHeartbeatRecv” : ISODate(“2014-05-20T18:10:52Z”),
“pingMs” : 0,
“syncingTo” : “replset ”
},
{
“_id” : 1,
“name” : “replset “,
“health” : 1,
“state” : 2,
“stateStr” : “SECONDARY”,
“uptime” : 1033,
“optime” : Timestamp(1399640630, 1),
“optimeDate” : ISODate(“2014-05-09T13:03:50Z”),
“lastHeartbeat” : ISODate(“2014-05-20T18:10:51Z”),
“lastHeartbeatRecv” : ISODate(“2014-05-20T18:10:52Z”),
“pingMs” : 1,
“syncingTo” : “rreplset ”
},
{
“_id” : 2,
“name” : “replset “,
“health” : 1,
“state” : 1,
“stateStr” : “PRIMARY”,
“uptime” : 1649,
“optime” : Timestamp(1399640630, 1),
“optimeDate” : ISODate(“2014-05-09T13:03:50Z”),
“self” : true
}
],
“ok” : 1
}

七,创建用户:

> use admin

switched to db admin

初始化数据库:

> db.createUser(

… {

… user: “dba”,

… pwd: “dba”,

… roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ] 

… }

… )              #用户授权

> use admin

> use db.auth(“dba”,”dba”);        #    登录

创建用户:

> db.createUser(

… {

… user: “ root “,

… pwd: “ root“,

… roles: [ { role: “root“, db: “admin” } ] 

… }

… )            #创建用户

八,安装时出现的问题:

一:数据库文件权限问题

由于操作时,可能使用了root此时需要修改文件的权限

root】#   chown -R mongodb:mongodb /mongo安装目录

root】#   chown -R mongodb:mongodb /home/mongodb

二:mongodb启动时mongodb_keyfile权限问题:

 su – mongodb

#  mongod  -f   /mongodb安装目录/conf/mongo.conf

可能会报错

ERROR: child process failed, exited with error number 1

检查配置文件是否写对,检查配置对应的目录是否创建,检查目录权限

博主在cat mongodb 的日志发现是权限问题,mongodb_keyfile 权限太大

这里将其权限改为666

chmod -R 666 /mongodb安装目录/conf/mongodb_keyfile

之后重启OK!!

九:Mongodb客户端使用工具:

例如:Nosql Manager for Mongodb、Navicat for Mongodb


猜你喜欢

转载自blog.csdn.net/guo_cw/article/details/80637697