Linux下搭建MongoDB

在根目录下新建data文件夹,进入data文件夹下载MongoDB,解压MongoDB,修改文件名

wget http://bbcbackup.oss-cn-shenzhen.aliyuncs.com/run/mongodb-linux-x86_64-rhel70-3.4.2.tgz
tar zxvf  mongodb-linux-x86_64-rhel70-3.4.2.tgz
mv mongodb-linux-x86_64-rhel70-3.4.2 mongodb
进入mongodb目录创建三个文件夹conf,logs,db。在conf目录下新建文件mongodb.conf,编辑内容

dbpath是数据库文件目录,logpath是日志目录,port是mongodb所占用的端口,fork是true的时候表示在后台启动

dbpath=/data/mongodb/db
logpath=/data/mongodb/logs/mongodb.log
port=27017
fork=true

配置三台机器,启动mongod,replSet表示副本集群参数 ,mongoTest是副本集名称,这里的名字可以任意取,另外两台机也要和这个一样

/data/mongodb/bin/mongod --config /data/mongodb/conf/mongodb.conf  --replSet mongoTest

如果启动成功会看到类似下面的提示

about to fork child process, waiting until server is ready for connections.
forked process: 15398
child process started successfully, parent exiting
进入其中一台机器进行mongodb shell操作

/data/mongodb/bin/mong -port 27017

>use admin

>config={_id:'mongoTest',members:[{_id:0,host:'192.168.8.163:27017'},{_id:1,host:'192.168.8.164:27017'},{_id:2,host:'192.168.8.165:27017'}]}

######我的三台机器ip是192.168.8.163 192.168.8.164192.168.8.165,自己的机器自己配置##########其中id:0对应的ip是主数据库IP地址

> rs.initiate(config)

{"OK":1}####这样显示就对了

查看详细内容

mongoTest:OTHER> rs.status()
{
        "set" : "mongoTest",
        "date" : ISODate("2018-01-05T02:21:38.716Z"),
        "myState" : 1,
        "term" : NumberLong(1),
        "heartbeatIntervalMillis" : NumberLong(2000),
        "optimes" : {
                "lastCommittedOpTime" : {
                        "ts" : Timestamp(1515118891, 1),
                        "t" : NumberLong(1)
                },
                "appliedOpTime" : {
                        "ts" : Timestamp(1515118891, 1),
                        "t" : NumberLong(1)
                },
                "durableOpTime" : {
                        "ts" : Timestamp(1515118891, 1),
                        "t" : NumberLong(1)
                }
        },
        "members" : [
                {
                        "_id" : 0,
                        "name" : "192.168.8.163:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 1146,
                        "optime" : {
                                "ts" : Timestamp(1515118891, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2018-01-05T02:21:31Z"),
                        "infoMessage" : "could not find member to sync from",
                        "electionTime" : Timestamp(1515118850, 1),
                        "electionDate" : ISODate("2018-01-05T02:20:50Z"),
                        "configVersion" : 1,
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "192.168.8.164:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 59,
                        "optime" : {
                                "ts" : Timestamp(1515118891, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1515118891, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2018-01-05T02:21:31Z"),
                        "optimeDurableDate" : ISODate("2018-01-05T02:21:31Z"),
                        "lastHeartbeat" : ISODate("2018-01-05T02:21:36.828Z"),
                        "lastHeartbeatRecv" : ISODate("2018-01-05T02:21:36.859Z"),
                        "pingMs" : NumberLong(0),
                        "syncingTo" : "192.168.8.163:27017",
                        "configVersion" : 1
                },
                {
                        "_id" : 2,
                        "name" : "192.168.8.165:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 59,
                        "optime" : {
                                "ts" : Timestamp(1515118891, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1515118891, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2018-01-05T02:21:31Z"),
                        "optimeDurableDate" : ISODate("2018-01-05T02:21:31Z"),
                        "lastHeartbeat" : ISODate("2018-01-05T02:21:36.828Z"),
                        "lastHeartbeatRecv" : ISODate("2018-01-05T02:21:36.842Z"),
                        "pingMs" : NumberLong(0),
                        "syncingTo" : "192.168.8.163:27017",
                        "configVersion" : 1
                }
        ],
        "ok" : 1
}

mongoTest:PRIMARY>

开启keyfile认证就默认开启了auth认证了,为了保证后面可以登录,我提前创建了用户:
先创建管理员账户

db.createUser({user:"admin",pwd:"xxxxxx",roles:[{role:"userAdminAnyDatabase",db:"admin"}]}); 

db.createUser({user:"root",pwd:"xxxxxxx",roles:[{role:"root",db:"admin"}]});

#认证用户
db.auth("admin","xxxxxxx")

db.auth("root","xxxxxxx")

这样就可以OK咯可以自己添加数据试试看

mongoTest:PRIMARY>use database_name###添加库,例如use asd

mongoTest:PRIMARY>show dbs###查询库

mongoTest:PRIMARY>db.admin.insert({"name":"cson"})#在admin库添加一条数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值