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个细节
不想成为将军的士兵,不是好士兵-拿破仑 如何成为运维经理?成为运维经理需要什么样的能力?我想很多运维工程师都会有这样的思考和问题. 如何成为运维经理.一般来说,运维经理大概有两种出身,一种是从底层最基 ...
随机推荐
- 【神经网络与深度学习】GLog使用笔记
环境: XPsp3 vs2005 glog-0.3.3 http://download.csdn.net/detail/chenguangxing3/6661667 编译: glog-0.3.3里面有 ...
- 临时更换pip国内源
源 地址 阿里云 http://mirrors.aliyun.com/pypi/simple/ 豆瓣 http://pypi.douban.com/simple/ 清华大学 https://pypi. ...
- 2019icpc南昌邀请赛F(线段树)
题目链接:https://nanti.jisuanke.com/t/40258 题意:给长为n的数组a,有m次操作,包括单点修改和查询F(l,r),其值为所有f(i,j)的异或和,l<=i< ...
- [转帖]linux 下yum使用技巧
linux 下yum使用技巧 https://www.cnblogs.com/galengao/p/5750389.html 本文来自我的github pages博客http://galengao.g ...
- [转帖]开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区别 https://www.geek-workshop.com/thread-1860-1-1.html liamj ...
- 关于前端JS判断字符串是否包含另外一个字符串的方法总结
RegExp 对象方法 test() var str = "abcd"; var reg = RegExp(/d/); console.log(reg.test(str)); // ...
- sklearn-GDBT
GDBT 可以解决分类和回归问题 回归问题 def __init__(self, loss='ls', learning_rate=0.1, n_estimators=100, subsample=1 ...
- java检测是不是移动端访问
request可以用别的代替 private static boolean isMobile(){ HttpServletRequest request = ThreadContextHolder.g ...
- 通过PlayBook部署Zabbix
编写Linux初始化剧本 初始化剧本环节,主要用户实现关闭Selinux关闭防火墙,一起配置一下阿里云的YUM源地址,和安装EPEL源,为后期的zabbix安装做好铺垫工作. 1.在安装Zabbix之 ...
- 最小生成树之Prim Kruskal算法(转)
最小生成树 首先,生成树是建立在无向图中的,对于有向图,则没有生成树的概念,所以接下来讨论的图均默认为无向图.对于一个有n个点的图,最少需要n-1条边使得这n个点联通,由这n-1条边组成的子图则称为原 ...