前言

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统;在高负载的情况下,添加更多的节点,可以保证服务器性能;它旨在为WEB应用提供可扩展的高性能数据存储解决方案;它将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。


MongoDB主要特点:

  • ✨ MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
  • ✨ 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName=”Sameer”,Address=”8 Gandhi Road”)来实现更快的排序。
  • ✨ 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
  • ✨ 如果负载的增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其他节点上这就是所谓的分片。
  • ✨ MongoDB支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
  • ✨ MongoDB使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
  • ✨ MongoDB中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
  • ✨ Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
  • ✨ Map函数和Reduce函数是使用JavaScript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
  • ✨ 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
  • ✨ GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
  • ✨ MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
  • ✨ MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。

下面所有安装实例都是以centOS 7 系统所展示

下载MongoDB安装包

官方版本选择下载:点击这里

这里我选择的是3.2.12版本,你们只需要选择自己需要对应的版本即可
这里的Linux下载命令根据系统不同下载命令也有所不同,请小伙伴自行百度下自己Linux的下载命令
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.12.tgz

安装部署运行MongoDB

  • 1️⃣ 将下载的MongoDB安装包解压到当前目录:tar -zxvf mongodb-linux-x86_64-3.2.12.tgz
  • 2️⃣ 将解压的目录移动到指定位置:mv mongodb-linux-x86_64-3.2.12/ /usr/local/mongodb
  • 3️⃣ 在/usr/local/mongodb下创建文件夹
    • 🔅 创建存储数据的文件夹:mkdir -p data/db
    • 🔅 创建存储日志的文件夹:mkdir logs
  • 4️⃣ 在/usr/local/mongodb/bin下新建配置MongoDB的配置文件mongodb.conf:vim mongodb.conf,内容如下
1
2
3
4
5
6
7
dbpath=/usr/local/mongodb/data/db                           #数据文件存放目录
logpath=/usr/local/mongodb/logs/mongodb.log #日志文件存放目录
port=27017   #端口
fork=true #以守护程序的方式启用,即在后台运行
nohttpinterface=true #设置为true,开启后,在MongoDB默认会开启一个HTTP协议的端口提供REST的服务
auth=true #认证是否开启
bind_ip=0.0.0.0 #绑定IP
  • 5️⃣ 环境变量配置:vim /etc/profile,配置内容如下
1
2
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
  • 6️⃣ 重载配置文件:source /etc/profile
  • 7️⃣ 启动,在/usr/local/mongodb/bin下输入启动命令:./mongod -f mongodb.conf
  • 8️⃣ 查看有关MongDB状态,ps -ef|grep --color mongodb
  • 9️⃣ 关闭,在/usr/local/mongodb/bin下输入关闭命令:./mongod -f ./mongodb.conf --shutdown

创建MongoDB用户,在本地链接远程服务器上的MongoDB

创建用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use admin  #使用“use”命令,切换到admin数据库,MongoDB用admin的system.users集合保存着用户信息
db.createUser(
{
user: "root",
pwd: "root",
roles: [
{
role: "userAdminAnyDatabase", #userAdminAnyDatabase 权限只是针对用户管理的,对其他是没有权限的
db: "admin"
}
]
}
)

use test
db.createUser(
{
user: "hdq",
pwd: "hdq",
roles: [
{
role: "readWrite", #读写账号
db: "test"
}
]
}
)
user:用户名
pwd:密码
db:则是这个角色属于哪个数据库
roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。role里的角色可以选:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Built-In Roles(内置角色):
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system


Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

关闭远程服务器的防火墙或者开启MongoDB需要的防火墙端口

  • 方法一:关闭/开启防火墙命令如下
1
2
3
4
5
6
7
systemctl stop firewalld.service        #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

systemctlrestart iptables.service #最后重启防火墙使配置生效
systemctlenable iptables.service #设置防火墙开机启动

firewall -cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
  • 方法二:开启MongoDB对应的端口
1
2
3
firewall-cmd --zone=public --add-port=27017/tcp --permanent    #开启端口
firewall-cmd --permanent --query-port=27017/tcp #查看端口
firewall-cmd --reload #重启防火墙

本地使用连接工具测试连接



MongoDB学习资料

MongoDB菜鸟教程
MongoDB入门篇 - 惨绿少年 - 博客园
MongoDB官方文档

ps:因作者能力有限,有错误的地方请见谅

  • 喜欢这篇文章的话可以用快捷键 Ctrl + D 来收藏本页

最后更新: 2018年10月25日 11:45

原始链接: https://blog.hdqyf.club/2018/10/25/20181025-Linux安装并部署MongoDB/

× 请我吃糖~
打赏二维码