1、下载mongodb
下载地址:http://www.mongodb.org/downloads
下载注意事项:
(1)选择对应的平台下载包。
(2)选择稳定的版本。
我这下载的是 mongodb-linux-x86_64-2.0.6.tgz
2、安装启动mongodb (注:由于我这只有一台机器空闲,故主备和集群的都只配到一台机器的不同端口上,端口号可以随便选择空闲端口号)
单机工作方式(single):
(1)、直接解压,我解压到 /opt 下 , 为了简化,我将解压后的目录mongodb-linux-x86_64-2.0.6改为mongodb。
(2)、进入目录/opt/mongodb,建立目录data用来存放数据,建立目录log用来存放日志(当然你也可以换一个名字,换一个地方存放)
(3)、建立一个配置文件,随便起个名字,比如mongodb.conf,编辑配置文件,加入下面配置:
dbpath=/opt/mongodb/data/
logpath=/opt/mongodb/log/s.log
logappend=true
fork=true
directoryperdb=true
port=27017
cpu=true
(4)、启动mongodb服务,运行/opt/mongodb/bin/mongod -config /opt/mongodb/mongodb.conf
到现在,单机模式已经安装启动完毕。运行mongodb,/opt/mongodb/bin/mongo 127.0.0.1:27017,现在就可以开始插入数据了。
主备工作方式(master-slave):
(1)、直接解压,我解压到 /opt 下 , 为了简化,我将解压后的目录mongodb-linux-x86_64-2.0.6改为mongodb。
(2)、进入目录/opt/mongodb,建立目录data/master,data/slave用来存放数据,建立目录log用来存放日志(当然你也可以换一个名字,换一个地方存放)
(3)、建立一个master的配置文件,随便起个名字,比如master.conf,编辑配置文件,加入下面配置:
dbpath=/opt/mongodb/data/master/
logpath=/opt/mongodb/log/master.log
logappend=true
fork=true
directoryperdb=true
port=27017
cpu=true
master=true
oplogSize=2048
(4)、建立一个slave的配置文件,随便起个名字,比如slave.conf,编辑配置文件,加入下面配置:
dbpath=/opt/mongodb/data/slave/
logpath=/opt/mongodb/log/slave.log
logappend=true
fork=true
directoryperdb=true
port=27018
cpu=true
slave=true
source=127.0.0.1:27017
autoresync=true
slavedelay=60
(5)、启动mongodb的master服务,运行/opt/mongodb/bin/mongod -config /opt/mongodb/master.conf
启动mongodb的slave服务,运行/opt/mongodb/bin/mongod -config /opt/mongodb/slave.conf
到现在,主备模式已经配置完毕。连接master,/opt/mongodb/bin/mongo 127.0.0.1:27017 然后插入数据,根据配置文件可知在60秒后将同步到slave
集群工作方式(replica sets):
(1)、直接解压,我解压到 /opt 下 , 为了简化,我将解压后的目录mongodb-linux-x86_64-2.0.6改为mongodb。
(2)、进入目录/opt/mongodb,建立目录data/s1,data/s2用来存放数据,建立目录log用来存放日志(当然你也可以换一个名字,换一个地方存放)
(3)、建立一个节点的配置文件,随便起个名字,比如s1.conf,编辑配置文件,加入下面配置:
dbpath=/opt/mongodb/data/s1/
logpath=/opt/mongodb/log/s1.log
oplogSize=2048
logappend=true
fork=true
directoryperdb=true
shardsvr=true
port=27017
cpu=true
replSet=test1
同样建立s2.conf,配置信息与s1.conf不同的地方是:
dbpath=/opt/mongodb/data/s2/
logpath=/opt/mongodb/log/s2.log
port=27018
同样建立s3.conf,配置信息与s1.conf不同的地方是:
dbpath=/opt/mongodb/data/s3/
logpath=/opt/mongodb/log/s3.log
port=27019
(4)、启动mongodb的服务,分别运行/opt/mongodb/bin/mongod -config /opt/mongodb/s1.conf ,/opt/mongodb/bin/mongod -config /opt/mongodb/s2.conf ,
/opt/mongodb/bin/mongod -config /opt/mongodb/s3.conf
(5)、初始化mongodb集群 , 连接其中的一个任意节点(这里连接端口为27017的节点),运行 /opt/mongodb/bin/mongo 127.0.0.1:27017,运行下面初始化命令,
注意:config中的_id就是配置文件中定义的replSet=test1。我这里配置的是1 primary+1 secondary+1 arbiter
现在集群方式也基本配置完毕了,查看一下:
但是一般访问都通过mongos路由来访问,所以还需要配置mongos及config节点。
(6)、配置config节点
进入目录/opt/mongodb,建立目录data/config用来存放数据,建立config的配置文件,随便起个名字,比如config.conf,编辑配置文件,加入下面配置:
dbpath=/opt/mongodb/data/config/
logpath=/opt/mongodb/log/config.log
logappend=true
fork=true
directoryperdb=true
port=27200
cpu=true
configsvr=true
启动config节点,运行 /opt/mongodb/bin/mongod -config /opt/mongodb/config.conf
(6)、配置mongos节点
进入目录/opt/mongodb,建立mongos的配置文件,随便起个名字,比如mongos.conf,编辑配置文件,加入下面配置(注意configdb里面需要配置1个或3个,
而且最好不要在那写ip,在hosts里面配好域名,以便将来更换,我这是测试,就不麻烦了):
logpath=/opt/mongodb/log/mongos.log
logappend=true
fork=true
port=27500
chunkSize=200
configdb=127.0.0.1:27200
启动mongos节点,运行/opt/mongodb/bin/mongos -config /opt/mongodb/mongos.conf
(7)、初始化mongos节点
连接mongos,运行命令:/opt/mongodb/bin/mongo 127.0.0.1:27500,执行以下操作(这里有几个分片就加入几个分片,同一个分片中arbitor的节点不要加入):
db.adminCommand( { addshard:"test1/127.0.0.1:27017,127.0.0.1:27018" } );
结果如下:
到现在已经配置完成,查看一下:
ps:csdn的blog真让人头疼,排好的版一发乱七八糟了,同一行没有回车写多了发布后就看不见了...