简介
- MongoDB 是一个基于分布式 文件存储的NoSQL数据库
- 由C++语言编写,运行稳定,性能高
- 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案
MongoDB特点
- 模式自由 :可以把不同结构的文档存储在同一个数据库里
- 面向集合的存储:适合存储 JSON风格文件的形式
- 完整的索引支持:对任何属性可索引
- 复制和高可用性:支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移
- 自动分片:支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器
- 丰富的查询:支持丰富的查询表达方式,查询指令使用JSON形式的标记,可轻易查询文档中的内嵌的对象及数组
- 快速就地更新:查询优化器会分析查询表达式,并生成一个高效的查询计划
- 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)
Packages包说明
MongoDB官方源中包含以下几个依赖包:
mongodb-org: MongoDB元数据包,安装时自动安装下面四个组件包:
1.mongodb-org-server: 包含MongoDB守护进程和相关的配置和初始化脚本。
2.mongodb-org-mongos: 包含mongos的守护进程。
3.mongodb-org-shell: 包含mongo shell。
4.mongodb-org-tools: 包含MongoDB的工具: mongoimport, bsondump, mongodump, mongoexport, mongofiles, mongooplog, mongoperf, mongorestore, mongostat, and mongotop。
使用yum安装:
官网:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-amazon/
安装步骤
1.配置MongoDB的yum源
先创建文件:touch /etc/yum.repos.d/mongodb-org-4.0.repo
然后访问:vim /etc/yum.repos.d/mongodb-org-4.0.repo
按i可进入编辑模式
#添加以下内容:
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
#这里可以修改 gpgcheck=0, 省去gpg验证
[root@localhost ~]# yum makecache
按ESC键 跳到命令模式,然后按:键,再wq进行保存
安装命令:
yum -y install mongodb-org
安装完成后:
已安装:
mongodb-org.x86_64 0:3.4.14-1.el7
作为依赖被安装:
mongodb-org-mongos.x86_64 0:3.4.14-1.el7 mongodb-org-server.x86_64 0:3.4.14-1.el7
mongodb-org-shell.x86_64 0:3.4.14-1.el7 mongodb-org-tools.x86_64 0:3.4.14-1.el7
完毕!
[root@adminset yum.repos.d]#
查看mongo安装位置 :
whereis mongod
查看修改配置文件 :
vim /etc/mongod.conf
3.启动MongoDB
启动mongodb :
systemctl start mongod.service
停止mongodb :
systemctl stop mongod.service
查到mongodb的状态:
systemctl status mongod.service
公网连接服务器开启27017端口
Cent OS 7上需要把mongoDB添加到systemd,否则会出现下面的错误
1 |
|
将mongoDB添加到systemd
vi /usr/lib/systemd/system/mongod.service
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
建立链接
1 |
|
重新加载systemctl
1 |
|
配置文件启动:
./mongod --config /etc/mongodb.conf --fork #自己路径的位置
在centos7中,如果服务器重启,那么再次启动mongodb的时候会报错
cat /var/log/mongodb/mongod.log
查看日志发现:ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: No such file or directory
Centos7系统每次会把/var/run下面的一些项目清理,所以下次重起来的时候就没有了这个文件了,现在的systemd启动的话,没有什么好办法处理这个文件,因为systemd启动就是执行一个命令:
/usr/bin/mongod --quiet -f /etc/mongod.conf run
处理方案
自己创建一个永久的文件路径,以及这个pid文件
修改配置文件/etc/mongod.conf里面的pid路径,然后修改systemd条目的路径。
具体操作
1.创建文件,并修改权限
[azuo1228@ecs-ee2fe26e /]$ sudo mkdir /mongod
[azuo1228@ecs-ee2fe26e /]$ sudo touch /mongod/mongod.pid
[azuo1228@ecs-ee2fe26e /]$ sudo chown -R mongod:mongod /mongod
2.修改配置
[azuo1228@ecs-ee2fe26e /]$ sudo vim /etc/mongod.conf
把里面的:
pidFilePath: /var/run/mongodb/mongod.pid
修改为创建的文件:
pidFilePath: /mongod/mongod.pid
3.修改systemd条目
[azuo1228@ecs-ee2fe26e ~]$ sudo vim /etc/systemd/system/multi-user.target.wants/mongod.service
把里面的:
PIDFile=/var/run/mongodb/mongod.pid
修改为制定的文件的路径:
PIDFile=/mongod/mongod.pid
4. reload systemd
[azuo1228@ecs-ee2fe26e ~]$ sudo systemctl daemon-reload
5. 启动mongod或者重起电脑
[azuo1228@ecs-ee2fe26e ~]$ sudo service mongod start
6.查看状态
[azuo1228@ecs-ee2fe26e ~]$ sudo systemctl status mongod.service
NOTE 1:
mongodb安装更新之后,mongo.conf不会更新,但是,会更新
/etc/systemd/system/multi-user.target.wants/mongod.service
,装一个新的
/etc/systemd/system/multi-user.target.wants/mongod.service
所以,也会起不来。
如果有按照上面设置过conf文件,也需要再次修改这个systemd文件。
NOTE 2:
更新的mongodb 3.4.1,已经修正了这个问题
[azuo1228@Server ~]$ sudo rpm -qa | grep mongo
mongodb-org-3.4.1-1.el7.x86_64
mongodb-org-shell-3.4.1-1.el7.x86_64
mongodb-org-tools-3.4.1-1.el7.x86_64
mongodb-org-mongos-3.4.1-1.el7.x86_64
mongodb-org-server-3.4.1-1.el7.x86_64
[azuo1228@Server ~]$