centos7 新手阿里云服务器安装mongodb

原创
2019/05/23 18:27
阅读数 978

简介

  • 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

systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database..

将mongoDB添加到systemd

 vi /usr/lib/systemd/system/mongod.service

1

2

3

4

5

6

7

8

9

10

11

12

13

# vi /usr/lib/systemd/system/mongod.service

[Unit]

Description=mongodb database

 

[Service]

User=mongod

Group=mongod

Environment="OPTIONS=--quiet -f /etc/mongod.conf"

ExecStart=/usr/bin/mongod $OPTIONS run

PIDFile=/var/run/mongodb/mongod.pid

 

[Install]

WantedBy=multi-user.target

建立链接

1

# ln -s /usr/lib/systemd/system/mongod.service /etc/systemd/system/multi-user.target.wants/

重新加载systemctl

1

# systemctl daemon-reload

配置文件启动:

./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 ~]$

展开阅读全文
打赏
0
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
0
分享
返回顶部
顶部