本人菜鸟一个 只是根据自己的需求来订的 ,也是第一次弄mognodb集群。各位大神勿喷。写的有点乱 先凑合看下吧
1,新建以及配置mongodb.conf文件:
vi /etc/mongodb.conf(输入以下内容)
fork=true #以守护进程的方式运行,创建服务器进程
logpath=/alidata/webroot/logs/work.log #日志输出文件路径
logappend=true #日志输出方式
dbpath=/data/db #数据库路径
replSet=firstdb #设置富本集的名字
然后进去mongodb的bin目录下执行以下命令:
注:先杀掉mongod的进程 然后在使用以下命令
./mongod -f /etc/mongodb.conf (启动) 注:etc/rc.lcoal 也要改成这个mongod -f /etc/mongodb.conf
当进入bin目录下执行./mongo 然后show dbs之后会出现问题 liasdatabase
出现这个问题的时候 是因为得初始化:
先试用命令关闭mongodb:
./mongod --dbpath=/alidata/approot/mongodb/mongodb-linux-x86_64-3.2.7/data/db/ --shutdown
在配置文件加上这几个配置:
journal = true
oplogSize = 4096
然后在进mongodb的bin目录下执行:./mongod -f /etc/mongodb.conf
查看是否启动成功:如果启动成功 进入到mongodb的bin目录下
执行命令:./mongo
然后:rs.initiate(
{
_id: "rs0",
version: 1,
members: [
{ _id: 0, host : "ip:27017", priority: 30},
{ _id: 1, host : "ip:27017", priority: 20 },
{ _id: 2, host : "ip:27017", priority: 10 }
]
}
)
然后使用命令:rs.ststus()查看下
{
"info" : "run rs.initiate(...) if not yet done for the set",
"ok" : 0,
"errmsg" : "no replset config has been received",
"code" : 94
}
如果显示出来这样就是另外两台写入过数据 :
停掉两台从的 :把数据清空了 或者换一个文件夹
mv db db.bak
mkdir db
chmod -R 777 db
然后启动
再次执行上面的命令:rs.initiate(
{
_id: "rs0",
version: 1,
members: [
{ _id: 0, host : "ip:27017", priority: 30},
{ _id: 1, host : "ip:27017", priority: 20 },
{ _id: 2, host : "ip:27017", priority: 10 }
]
}
)
然后使用命令:rs.status()
然后去从节点看下logs日志
然后使用命令:top 查看下负载
然后在从节点看下同步进程:必须进入到logs目录下面 才能执行以下面的查看进程的命令
使用命令:tail -f work.log
然后进去到主节点使用命令:use test
然后使用命令:find image_weibo.files.find()
如果有数据,就去从节点的mongo执行命令:
rs.slaveOk()
两个从节点都要执行这个命令:
然后使用命令use test
然后使用命令db.image_weibo.files.find() 查看是否有数据 如果有数据就是同步成功了 OK!
然后在主节点插入数据测试:
db.image_weibo.insert({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: 'xx11',
url: 'http://www.baidu.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})