mongodb介绍与安装(容器安装与非容器安装)

一、mongodb介绍

1. mongodb介绍

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

2. mongodb的特点

  • MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
  • 可以在MongoDB记录中设置任何属性的索引 (如:id="1",name="goudan",Address="beijing")来实现更快查询或排序。
  • 可以通过本地或者网络创建数据镜像,这使得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安装简单。

3. mongodb相关术语

在MongoDB中基本的概念是文档、集合、数据库。

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
table joins表连接,MongoDB不支持
primary keyprimary key主键,MongoDB自动将==_id字段==设置为主键

二、安装部署

官网下载地址:https://www.mongodb.com/try/download/enterprise

方法一:编译安装mongodb

#上传服务器
$ scp ~/Desktop/mongodb-linux-x86_64-enterprise-rhel70-4.4.14.tgz 02:/home

#解压MongoDB
tar -zxvf /home/mongodb-linux-x86_64-enterprise-rhel70-4.4.14.tgz -C /usr/local/
#重命名
mv /usr/local/mongodb-linux-x86_64-enterprise-rhel70-4.4.14 /usr/local/mongodb
#创建数据、配置、日志目录
mkdir -p /usr/local/mongodb/data /usr/local/mongodb/conf /usr/local/mongodb/log

修改配置文件 /usr/local/mongodb/conf/mongodb.conf

#在mongodb 下的bin建立配置文件夹
[root@qianfeng01 mongodb]#vim /usr/local/mongodb/conf/mongodb.conf

# 输入以下内容
port=27017 #端口
bind_ip=0.0.0.0 	#默认是127.0.0.1
dbpath=/usr/local/mongodb/data #数据库存放
logpath=/usr/local/mongodb/log/mongodb.log #日志文件
fork=true 	#设置后台运行
#auth=true #开启认证

启动MongoDB

#启动mongodb
[root@qianfeng01 mongodb]# /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/conf/mongodb.conf 

#启动完可以先本地连接
#连接客户端
[root@qianfeng01 mongodb]# /usr/local/mongodb/bin/mongo

方法二:docker容器安装

1. 安装docker-ce

# 安装docker
# 默认repo源没有docker-ce安装包,需要新的repo源
# 安装依赖库,yum-utils 提供命令"yum-config-manager" 
yum install -y yum-utils device-mapper-persistent-data lvm2
#设置添加阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 我们在更新yum源或者出现配置yum源之后,通常都会使用yum makecache 生成缓存
yum makecache fast

# 安装最新版本的docker-ce即可
yum -y install docker-ce
docker --version
systemctl start/stop/status/restart docker

#将docker和镜像重启
systemctl restart docker
systemctl daemon-reload

# 为docker配置镜像加速
cat  <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": ["https://fzh5358h.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
# 设置开机自启,并重启
systemctl enable docker
systemctl restart docker

2. mongo镜像下载

#docker拉取mongo 4.4镜像
docker pull mongo:4.4

3. 创建mongo容器并运行

[root@qianfeng01 local]# mkdir -p /usr/local/mongodb/data /usr/local/mongodb/conf /usr/local/mongodb/log
#运行docker容器(没有则创建),无需密码验证
docker run \
-itd \
--name mongo \
-p 27017:27017 \
-v /usr/local/mongodb/data:/mongo/data \
-v /usr/local/mongodb/conf:/mongo/conf \
-v /usr/local/mongodb/log:/mongo/log \
mongo:4.4

#创建mongo容器,后期登陆需要密码授权
docker run -itd --name mongo -p 27017:27017 mongo:4.4 --auth  
--auth表示访问时需要密码

docker run代表运行容器,没有就创建
-i:允许你对容器内的标准输入 (STDIN) 进行交互
-t: 在新容器内指定一个伪终端或终端
-d:在后台运行容器并打印containerID
–name: 指定容器名称
-p: 指定端口映射,即将容器的27107端口映射到本机27107
-v: 将本机的目录挂到容器内部/mongo/data目录 mongo:4.4:镜像名称

4. docker相关操作

# 查看容器列表
docker ps
#docker查看mongo日志,mongo为容器名称
docker logs mongo

#停止mongo容器
docker stop mongo

#列出镜像
docker image ls

#列出容器
docker container ls

#容器停止一个或者多个容器
docker container stop de845050dc24
docker container start de845050dc24  #开启一个或者多个容器
docker container restart de845050dc24  #重启一个或者多个容器
docker container run    #重新运行一个新的容器

#删除mongo容器
docker container rm de845050dc24

5. 进入mongo容器操作

#无需账号登陆mongo,直接进入mongo容器内部,第一个mongo是容器名称,第二个是进入执行mongo
docker exec -it mongo mongo
MongoDB shell version v4.4.14
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("fa47f0cc-e8c2-44c7-aa90-49e1d9dfdd8f") }
MongoDB server version: 4.4.14
........
> db.collections;
test.collections
> exit;
#进入容器语法:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
#退出mongo容器
> exit;

# 通过容器名称进入容器内部,并以admin账号登陆mongo
docker exec -it mongo mongo admin
# 容器内部执行指令
db.createUser({ user:'root',pwd:'123456',roles:[ { role:'root', db: 'admin'}]});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值