linux运维、架构之路-MongoDB单机部署
一、MongoDB介绍
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系型数据库和非关系型数据库之间的产品,是非关系数据库当中功能最丰富,最像关系型的数据库。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
二、主要特点
- MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
- 可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。
- 可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
- 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
- Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
- MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
- Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
- Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
- Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
- GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
- MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
- MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
- MongoDB安装简单
三、MongoDB部署
1、安装所需依赖
yum install libcurl openssl
2、下载源码包
下载地址: https://www.mongodb.com/download-center?jmp=nav#community

3、创建所需目录
mkdir -p /app/mongodb4./{install,logs,conf,data}
4、上传解压 mongodb-linux-x86_64-4.0.0.tgz 至 /app/mongodb4.0/install目录下
tar xf mongodb-linux-x86_64-4.0..tgz -C /app/mongodb4./install/
5、创建MongoDB配置文件、日志文件
touch /app/mongodb4./logs/mongodb.log
touch /app/mongodb4./conf/mongodb.conf
6、编辑mongodb.conf
port=
#以后台方式运行
fork=true
#数据库日志存放目录
logpath=/app/mongodb4./logs/mongodb.log
#以追加的方式记录日志
#logappen=true
#数据库数据存放目录
dbpath=/app/mongodb4./data
#开启用户认证true
auth=false
#过滤一些无用的日志信息,若需要调试使用请设置为false
quiet=true
#auth=true
##mongodb所绑定的ip地址
bind_ip = 0.0.0.0
7、启动MongoDB
/app/mongodb4./install/bin/mongod -f /app/mongodb4./conf/mongodb.conf
8、配置MongoDB
①进入MongoDB命令模式
/app/mongodb4./install/bin/mongo 127.0.0.1:
②创建数据库
use demon
③创建用户管理员
在admin数据库中添加超级角色的用户
use admin
db.createUser({user:"admin",pwd:"admin",roles:[{role:"root",db:"admin"}]});
创建普通用户及数据库
use demon
db.createUser({user:"demon",pwd:"demon",roles:[{role:"readWrite",db:"demon"}]});
权限说明
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
- 内部角色:__system
9、停止MongoDB
/app/mongodb4./install/bin/mongod -f /app/mongodb4./conf/mongodb.conf -shutdown
10、编辑mongodb.conf auth=true
/app/mongodb4./install/bin/mongod -f /app/mongodb4./conf/mongodb.conf
11、使用上面创建的用户登录MongoDB
/app/mongodb4./install/bin/mongo --port -u "demon" -p "demon" --authenticationDatabase "demon"
四、开发MongoDB启动脚本
1、编写脚本
#!/bin/bash
# chkconfig: -
Mongod_Path="/app/mongodb4.0/install/bin/mongod"
Mongod_Conf="/app/mongodb4.0/conf/mongodb.conf" usage() {
echo "usage: $0 [start|stop|restart]"
} start_Mongod() {
$Mongod_Path -f $Mongod_Conf
echo "Mongodb is starting"
} stop_Mongod() {
$Mongod_Path -f $Mongod_Conf --shutdown
echo "Mongodb is stopped"
} main() {
case $ in
start)
start_Mongod;;
stop)
stop_Mongod;;
restart)
stop_Mongod && start_Mongod;;
*)
usage;
esac
}
main $
2、授予脚本可执行权限
chmod +x /etc/init.d/mongod
chkconfig --add mongod
3、启动、停止、重新MongoDB服务
/etc/init.d/mongod start
/etc/init.d/mongod stop
/etc/init.d/mongod restart
五、MongoDB数据库的相关操作
> show dbs; #查看当前实例下的数据库
> show databases; #兼容关系型数据库MySQL命令
> use local; #切换数据库local
> show collections; #查看数据库local的集合
> show tables; #兼容关系型数据库MySQL命令
常用的操作如下:

linux运维、架构之路-MongoDB单机部署的更多相关文章
- linux运维架构师职业规划
1.假如你从来未接触过Linux的话,首先要做的就找一本指导书来学习.现在公认的Linux的入门书籍是“鸟哥的私房菜”,讲的很全面,鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇.“鸟哥的私房 ...
- Linux 运维入门到跑路书单推荐
一.基础入门 <鸟哥的Linux私房菜基础学习篇>:最具知名度的Linux入门书<鸟哥的Linux私房菜基础学习篇>,全面而详细地介绍了Linux操作系统. https://b ...
- 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路
做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...
- Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!
Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Disc ...
- Linux运维企业架构实战系列
Linux运维企业架构项目实战系列 项目实战1-LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2-LVS.nginx实现负载均衡系列 2.1 项目实战2.1-实现基于LVS负载均衡集 ...
- Linux运维企业架构项目实战系列
Linux运维企业架构项目实战系列 项目实战1—LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2—LVS.nginx实现负载均衡系列2.1 项目实战2.1—实现基于LVS负载均衡集群 ...
- Linux运维工程师成长必经之路
本路线图是从0基础开始,全方位由浅入深,按照多年Linux培训经验和优秀教学方法制定的学习思路和学习方法,路线图包括初级入门.中级进阶.高级提升和资深冲刺四个阶段,每阶段对应着不同优秀的课程和学习方法 ...
- 从零起步做到Linux运维经理, 你必须管好的23个细节
“不想成为将军的士兵,不是好士兵”-拿破仑 如何成为运维经理? 一般来说,运维经理大概有两种出身:一种是从底层最基础的维护做起,通过出色的维护工作,让公司领导对这个人非常认可,同时对Linux运维工作 ...
- 从零起步做到Linux运维经理,你必须管好的23个细节
不想成为将军的士兵,不是好士兵-拿破仑 如何成为运维经理?成为运维经理需要什么样的能力?我想很多运维工程师都会有这样的思考和问题. 如何成为运维经理.一般来说,运维经理大概有两种出身,一种是从底层最基 ...
随机推荐
- icon.css
.icon-blank{ background:url('icons/blank.gif') no-repeat; } .icon-add{ background:url('icons/edit_ad ...
- 2019牛客暑期多校训练营(第一场)-A (单调栈)
题目链接:https://ac.nowcoder.com/acm/contest/881/A 题意:给定两个长度均为n的数组a和b,求最大的p使得(a1,ap)和(b1,bp)等价,等价的定义为其任意 ...
- 【有奖征集】报表模板库邀您提反馈,轻松赢取P30!
>>立即参赛 赛事初衷 大数据时代,数据的价值愈发彰显,什么样的报表才能真正帮助业务决策?这几乎是所有信息化建设的企业和个人都在思考的问题. 作为报表领域标杆企业,葡萄城于2017年推出了 ...
- SSM框架中表单提交出现400错误
在jsp页面中: 在controller里传递参数: 由于参数sonTime时String类型,要把String类型的时间转换成Date类型的时间,在过程无法自动完成转换故出现400错误,可以使用@D ...
- Spring(十三)-- Spring 事务
Spring 事务 1. 回忆之前事务知识点 一:事务的概念 将一系列的数据操作捆绑在一起,成为一个整体进行统一管理! 一条或者多条sql语句的集合! 二:事务的ACID特性 原子性(Atomic ...
- 深入理解Java中的Clone与深拷贝和浅拷贝
1.Java对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象. ...
- Spring实现构造注入
Spring通过setter访问器实现对属性的赋值,这种做法称为设值注入:Spring还提供了通过构造方法赋值的能力,称为构造注入.使用设值注入时,Spring通过JavaBean的无参构造方法实例化 ...
- # 解决MongoDB突然无法连接的问题
解决MongoDB突然无法连接的问题 使用命令,加上路径sudo mongod --dbpath=/var/lib/mongodb 这种情况一般是上一次使用的时候没有正常关闭数据库,正常启动:mong ...
- vs2019编译opencv
序 微软家的宇宙第一ide:visual studio已经更新到了2019版,芒果也更新尝鲜了一遍,体验还不错,建议更新尝尝鲜.芒果顺便使用vs2019编译了一遍opencv,编译过程也非常顺利,以下 ...
- linux centos7.3安装lnmp,nginx-1.11.12 ,php7.0.2 ,
#更新源 yum -y update #添加用户和组 adduser www groupadd www usermod -G www www #初始化目录 mkdir -p /data/app/php ...