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
>

當前題目:NoSQL之mongodb
本文路徑:http://m.kartarina.com/article30/pipepo.html

成都網站建設公司_創新互聯,為您提供網站導航網站營銷全網營銷推廣網站策劃網站內鏈網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站
主站蜘蛛池模板: av无码免费一区二区三区| 无码人妻精品一区二区三区久久 | 日日摸夜夜添无码AVA片| 夜夜添无码一区二区三区| 久久成人无码国产免费播放| 国产精品亚洲一区二区无码| 无码一区二区三区在线观看| 本道久久综合无码中文字幕| 亚洲AV无码久久精品狠狠爱浪潮| 亚洲精品久久无码| 亚洲午夜无码久久| 亚洲成AV人在线观看天堂无码| 无码 免费 国产在线观看91 | 午夜福利无码不卡在线观看| 亚洲日韩精品A∨片无码加勒比| 暴力强奷在线播放无码| 无码熟妇αⅴ人妻又粗又大| 亚洲AV无码AV男人的天堂不卡| 99久久国产热无码精品免费| 中文字幕精品无码一区二区| 亚洲精品高清无码视频| 亚洲av无码专区国产乱码在线观看| 国产精品无码亚洲精品2021| 日韩人妻无码精品久久免费一| 免费看成人AA片无码视频吃奶| 精品无码久久久久久尤物| 亚洲av中文无码乱人伦在线观看| 一本大道东京热无码一区| 中文无码AV一区二区三区| 无码精品人妻一区| 无码精品A∨在线观看无广告| 久久无码av亚洲精品色午夜| 亚洲精品无码你懂的网站| 日韩成人无码中文字幕| 乱人伦人妻中文字幕无码| 无码人妻丰满熟妇片毛片| 无码中文av有码中文av| 亚洲av无码专区在线电影天堂| 一本色道无码道DVD在线观看| 精品无码无人网站免费视频| 亚洲熟妇无码八V在线播放|