我的编程空间,编程开发者的网络收藏夹
学习永远不晚

NoSQL之mongodb

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

NoSQL之mongodb

NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。

指的是非关系型的数据库,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL用于超大规模数据的存储。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。


回顾一下关系型数据库遵循ACID规则:

事务transaction,和现实世界中的交易很类似,它有如下四个特性:

1、A (Atomicity) 原子性

原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。

例如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。

2、C (Consistency) 一致性

一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。

例如现有完整性约束a+b=10,如果一个事务改变了a,那么必须得改变b,使得事务结束后依然满足a+b=10,否则事务失败。

3、I (Isolation) 独立性

所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。

例如现有有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的。

4、D (Durability) 持久性

持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。


两者的特性:

RDBMS 

- 高度组织化结构化数据 

- 结构化查询语言(SQL)

- 数据和关系都存储在单独的表中 

- 数据操作语言,数据定义语言 

- 严格的一致性

- 基础事务

NoSQL 

- 不仅仅是SQL

- 没有声明性查询语言

- 没有预定义的模式

- 键 - 值对存储,列存储,文档存储,图形数据库

- 最终一致性,而非ACID属性

- 非结构化和不可预知的数据

- CAP定理 

- 高性能,高可用性和可伸缩性



mongodb 入门

一、安装配置:

1.下载安装包并解压到指定安装目录

mkdir /opt/soft/ && cd /opt/soft
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.9.tgz 
mkdir /opt/mongodb
tar zxvf mongodb-linux-x86_64-3.4.10.tgz
mv mongodb-linux-x86_64-3.4.10/* /opt/mongodb/

2.添加环境变量:

 MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:

 echo "export PATH=/opt/mongodb/bin:$PATH">>/etc/profile && source /etc/profile

3.创建conf文件夹用于存放配置文件,创建data文件夹用于存放数据,创建logs文件用于存放文件,这些目录在安装过程不会自动创建,都要手动创建。

mkdir /opt/mongodb/conf
mkdir /opt/mongodb/data
mkdir /opt/mongodb/logs
touch /opt/mongodb/conf/mongodb.conf
touch /opt/mongodb/logs/mongod.log

4、编辑配置文件

vi /opt/mongodb/conf/mongodb.conf

dbpath = /opt/mongodb/data
logpath = /opt/mongodb/logs/mongod.log
pidfilepath = /opt/mongodb/mongo.pid
port = 27017
fork = true

5、MongoDB设置为系统服务并且设置开机启动

vi   /etc/init.d/mongod

#!/bin/sh  
#description: mongodb  
start() {
 /opt/mongodb/bin/mongod -f /opt/mongodb/conf/mongodb.conf
}
stop() {
 /opt/mongodb/bin/mongod -f /opt/mongodb/conf/mongodb.conf --shutdown
}
case "$1" in
  start)
 start
 ;;
  stop)
 stop
 ;;
  restart)
 stop
 start
 ;;
  *)
 echo $"Usage: $0 {start|stop|restart}"  
 exit 1
esac

chmod +x /etc/rc.d/init.d/mongod

6、启动

service mongod start

二、用户授权和管理

1、mongodb安装好后第一次进入是不需要密码的,也没有任何用户,通过shell命令可直接进入,cd到mongodb目录下的bin文件夹,执行命令./mongo即可

 ./mongo
 MongoDB shell version v3.4.9
 connecting to: mongodb://127.0.0.1:27017
 MongoDB server version: 3.4.9
 > show dbs
 admin  0.000GB
 local  0.000GB
 > use test
 switched to db test
 >

2、添加管理用户(mongoDB 没有无敌用户root,只有管理用户的用户 userAdminAnyDatabase) 

> use admin 
switched to db admin
> db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

Successfully added user: {

        "user" : "admin",

        "roles" : [

                {

                        "role" : "userAdminAnyDatabase",

                        "db" : "admin"

                }

        ]

}


3、添加完管理用户后,关闭MongoDB,并使用权限方式再次开启MongoDB,这里注意不要使用kill直接去杀掉mongodb进程,(如果这样做了,请去data/db目录下删除mongo.lock文件),可以使用db.shutdownServer()关闭。


4、修改配置文件,开启密码验证登录

vi /opt/mongodb/conf/mongodb.conf

auth = true #开启
service mongod start

5、进入mongo shell,使用admin数据库并进行验证,如果不验证,是做不了任何操作的

> use admin
> db.auth("admin","123456")
1 #认证返回1表示成功
>

6、验证之后还是做不了操作,因为admin只有用户管理权限,下面创建用户,用户都跟着库走

> use mytest
switched to db mytest
> db.createUser({user: "root",pwd: "123456",roles: [{ role: "readWrite", db: "mytest" }]})

Successfully added user: {

        "user" : "root",

        "roles" : [

                {

                        "role" : "readWrite",

                        "db" : "mytest"

                }

        ]

}


7、使用创建的用户root登录进行数据库操作

[root@bj-web-001 ~]# mongo 127.0.0.1/mytest -uroot -p
MongoDB shell version v3.4.10
Enter password: 
connecting to: mongodb://127.0.0.1/mytest
MongoDB server version: 3.4.10
> db
mytest
> use mytest
switched to db mytest
> show collections
>

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

NoSQL之mongodb

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

2024-04-02

MongoDB(一):NoSQL简介、MongoDB简介

1. NoSQL简介1.1 什么是NoSQLNoSQL(NoSQL= Not Only SQL),意即“不仅仅是SQL",是一项全新的数据库理念,泛指非关系型的数据库。1.2 为什么需要NoSQL随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极
MongoDB(一):NoSQL简介、MongoDB简介
2019-07-31

NoSql非关系型数据库之MongoDB应用(一):安装MongoDB服务 - 熊泽

业精于勤,荒于嬉;行成于思,毁于随。一、MongoDB服务下载安装(windows环境安装)1.进入官网:https://www.mongodb.com/,点击右上角的 Try Free  , 2.点击On-premises(本地安装),选择MongoDB C
NoSql非关系型数据库之MongoDB应用(一):安装MongoDB服务 - 熊泽
2017-11-18

NoSQL之一:Memcached

一、NoSQL简介       NoSQL并不是No SQL(不再需要SQL),而是指Not Only SQL(不仅仅只有SQL)。NoSQL并不是用来替代关系型数据库的,而是在某些使用关系型数据库不合适的场景中,可以使用NoSQL数据库进行优化,而在系统中主
NoSQL之一:Memcached
2018-11-19

MongoDB NoSQL之美:为什么选择非关系型数据库?

选择非关系型数据库的原因包括可扩展性、灵活的数据模型、高性能和弹性容错性。MongoDB作为一种流行的非关系型数据库,具有文档存储、高性能、灵活的查询、数据复制和故障恢复以及强大的生态系统等特点和优势。
数据库性能2024-11-30

MongoDB与NoSQL的优势有哪些

弹性扩展性:MongoDB是一个分布式数据库,可以轻松实现水平扩展,支持在多个服务器上分布数据,以提高性能和容量。灵活的数据模型:NoSQL数据库如MongoDB采用文档型数据模型,可以存储不同结构的数据,无需事先定义表结构,方便应对数据变
MongoDB与NoSQL的优势有哪些
2024-05-07

MongoDB客户端工具NoSQL Manager for MongoDB怎么使用

这篇文章主要讲解了“MongoDB客户端工具NoSQL Manager for MongoDB怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MongoDB客户端工具NoSQL Man
2023-07-02

NoSql非关系型数据库之MongoDB应用(二):安装MongoDB可视化工具 - 熊泽

业精于勤,荒于嬉;行成于思,毁于随。 我们上次说到NoSql非关系型数据库之MongoDB应用(一):安装MongoDB服务这次我们介绍安装  NoSQL Manager for MongoDB 可视化工具进行语句编写可以点击下面几种方式进行工具下载官网下载:
NoSql非关系型数据库之MongoDB应用(二):安装MongoDB可视化工具 - 熊泽
2014-06-04

NoSql非关系型数据库之MongoDB应用(三):MongoDB在项目中的初步应用 - 熊泽

业精于勤,荒于嬉;行成于思,毁于随。 我们可以结合相关的IDE做一个简单的增删改查了,实现MongoDB在项目中的初步应用。前提是安装了MongoDB服务和MongoDB可视化工具,没有安装的可以点下面的路径去操作一下。第一步:NoSql非关系型数据库之Mon
NoSql非关系型数据库之MongoDB应用(三):MongoDB在项目中的初步应用 - 熊泽
2018-06-10

编程热搜

目录