chaoz的杂货铺

生命有息、学无止境、折腾不止

0%

MongoDB实战经验

安装

树莓派上的安装

仅仅适用于Raspbian这种debian系,CentOS等其他树莓派系统无法启用,网上有很多尝试,都很复杂,徒劳。

Raspbian
如果使用的是raspbian,源里面有这个软件的:

1
sudo apt install mongodb

CentOS等
这里说一下Centos版本的Pi的安装:

结果就是:无法成功!

windows上的安装

仅列出关键步骤

1、在mongodb目录下建立data文件夹,然后在data文件夹建立db文件夹,然后在控制台中使用上面的指令启动mongodb:

1
2
3
mongod --dbpath D:\NoSQL\mongodb-win32-x86_64-2.4.3\data\db

注意:控制台输出有错误"ERROR: dbpath (\data\db\) does not exist." \data\db\文件路径不存在。用这条代码运行。

2、在mongodb目录下建立data文件夹,然后在data文件夹建立log文件夹

1
mongod --dbpath "D:\MongoDB\data\db" --logpath "D:\MongoDB\data\log\MongoDB.log" --install --serviceName "MongoDB"

3、作为服务进行安装

MongoDB在Windows中还可以作为服务进行安装。这样可以通过控制面板-管理工具-服务来启动和关闭mongo了。

使用完整的路径来运行,忽略所有空格并使用–install选项,就可以安装了(–logpath必须设置 )。

1
mongod -dbpath "D:\NoSQL\mongodb-win32-x86_64-2.4.3\data\db"  --logpath "D:\NoSQL\mongodb-win32-x86_64-2.4.3\data\log\mongodb.log"  --install --serviceName "MongoDB"

4、运行/停止

1
2
net start MongoDB
net stop MongoDB

MongoDB在linux上的运行

1
2
3
4
5
6
7
8
9
10
1. 启动MongoDB
sudo service mongod start
2. 验证MongoDB是否启动成功(在/var/log/mongodb/mongod.log文件中看到下面这一行就表示启动成功)
[initandlisten] waiting for connections on port 27017
3. 停止MongoDB进程
sudo service mongod stop
4. 重启MongoDB
sudo service mongod restart
5. 查看MongoDB运行状态
sudo service mongod status

mongodb远程连接配置

修改配置文件mongodb.conf

命令:vim /etc/mongodb.conf

把 bind_ip=127.0.0.1 这一行注释掉或者是修改成 bind_ip=0.0.0.0

连接到自定义的用户

1.增加

1
2
3
> use admin
switched to db admin
> db.addUser('username','password')

2.远程连接

命令: mongo 134.567.345.23:27017/admin -uusername -p

输入password即可

MongoDB 的主从复制与双主复制

主从

双主

MM和MS方式操作基本相同,只是两端都是MASTER。还是借用上一篇文章的我文件目录。

启动MASTER1

1
/usr/local/bin/mongod --master --slave -dbpath=/data/db/master -port=11536 --source 127.0.0.1:11537

启动MASTER2

1
/usr/local/bin/mongod --master --slave -dbpath=/data/db/master -port=11537 --source 127.0.0.1:11536

这里比较有意思,启动参数里把–master 和 –slave 指定,就可以存在双层身份了。

查看MASTER2打印出来的信息,如下:

1
2
3
4
Mon Jul 25 22:28:26 [conn1] getmore local.oplog.$main cid:7469048783387752013 getMore: { ts: { $gte: new Date(5633526834852265985) } } bytes:20 nreturned:0 3919ms
Mon Jul 25 22:28:27 [replslave] repl: applied 1 operations
Mon Jul 25 22:28:27 [replslave] repl: end sync_pullOpLog syncedTo: Jul 25 22:28:20 4e2e5074:1
Mon Jul 25 22:28:27 [replslave] repl: from host:127.0.0.1:11537

这里可以看到from host:127.0.0.1:11537
在MASTER1上可以看到类似的信息,端口为11536

在M1上创建库,表,M2上可以查到。M2上删除记录,M1上可以看到。双向同步成功。

1
Mon Jul 25 22:28:26 [conn1] getmore local.oplog.$main cid:7469048783387752013 getMore: { ts: { $gte: new Date(5633526834852265985) } } bytes:20 nreturned:0 3919ms

这样的信息是正常的,不影响复制。

喜欢这篇文章?打赏一下作者吧!

欢迎关注我的其它发布渠道