centOS7.4
mongdb3.6
准备三台内网的机器,比如IP地址10.2.7.106 10.2.7.107 10.2.7.108,每台机器上拷贝一套mongdb3.6(mongodb直接可以启动无需进行单独安装)
由于mongodb集群需要的配置信息比较多,这里我们使用conf配置文件进行参数设置,修改etc目录下的mongod.conf文件:这里注意修改bindIp: 10.2.7.106(其他两台机器是107,108),同时一定要注意mongodb的配置文件冒号后面必须有空格(colon+space),否则启动mongodb会报错。
这里我们使用的mongdb是提前设置了密码的数据库,因此直接创建副本集是不行的,必须保证各数据库能够互相访问,这里使用keyFile模式进行鉴权:下面是创建keyFile的方式:openssl rand -base64 666 > ./mongodb.keychmod 600 mongodb.key
将mongodb.key拷贝到另外两台机器上,做好配置就可以启动mongodb了,这里我们没有在配置文件中设置副本集的名称,所以执行命令时进行设置./bin/mongod -f /home/menhu/mongodb/etc/mongod.conf --replSet {meicai},启动后通过netstat命令查看端口是否启动,如果这里不是本机的ip,而是127.0.0.1的话,就是没有设置bindIp,其他内网的机器是无法访问的。
一次检查三台机器,如果没有问题就可以创建副本集;使用./mongo 10.2.7.106:27017进入打算作为主数据库的机器,(这里必须指定ip地址,因为127.0.0.1没有进行设置)
使用admin数据库进行授权use admin;db.auth(“root”,'{password}')
执行创建副本集命令rs.initiate({'_id':'meicai','members':[{'_id':0,'host':'10.2.7.106:27017'},{'_id':1,'host':'10.2.7.107:27017'},{'_id':2,'host':'10.2.7.108:27017'}]});没有意外的话,这里将创建成功。成功后可以通过rs.status()查看。
最后进行测试,在主数据库中创建一个测试数据库,一个测试集合,插入一条document,然后进入副本集进行查看(默认副本集不支持查看,需要先执行命令db.getMongo().setSlaveOk();)
本文的mondb是从其他环境拷贝过来的,默认已经设置了密码