中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MongoDB安裝及常用操作

發布時間:2020-07-31 16:52:20 來源:網絡 閱讀:1132 作者:M四月天 欄目:MongoDB數據庫


一、MongoDB簡介


1、介紹

1)MongoDB是由C++語言編寫的,是一個基于分布式文件存儲的開源數據庫系統,也屬于NoSQL

2)在高負載的情況下,可以添加更多的節點,可以保證服務器性能。

3)MongoDB旨在為WEB應用提供可擴展的高性能數據存儲解決方案。

4)MongoDB將數據存儲為一個文檔,數據結構由鍵值(key=>value)對組成;MongoDB文檔類似于JSON對象;字段值可以包括其他文檔,數組及文檔數組。


2、MongoDB和關系型數據庫對比

SQL術語/概念MongoDB術語/概念解釋說明
databasedatabase數據庫
tablecollection數據庫表/集合
rowdocument數據記錄行/文檔
columnfiled數據字段/域
indexindex索引
table joins
表連接,MongoDB不支持
primary keyprimary key主鍵,MongoDB自動將_id字段設置為主鍵

MongoDB安裝及常用操作

MongoDB安裝及常用操作


二、MongoDB安裝


如果安裝epel擴展源,可以安裝MongoDB2.4版本;但是我們要安裝3.0版本,官方提供的源只支持64位系統。

1、搭建yum源

[root@centos ~]# vim /etc/yum.repos.d/mongodb-org-3.0.repo

[mongodb-org-3.0]

name=MongoDB Repository

baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64

gpgcheck=0

enabled=1

注意:若后續要用yum工具,要改成 enabled=0,即恢復使用原來的yum源了。

2、安裝

[root@centos ~]# yum install -y mongodb-org

注意:下載時候因為是國外的源,有可能會出現下載中斷的情況。


3、修改配置文件

[root@centos ~]# vim /etc/mongod.conf                   //去掉三處注釋

  fork: true                       

  pidFilePath: /var/run/mongodb/mongod.pid

  bindIp:

MongoDB安裝及常用操作


4、修改內核以及限制參數

[root@centos ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled

[root@centos ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag

[root@centos ~]# vim /etc/security/limits.conf                        //末尾添加

mongod soft nofile 64000

mongod hard nofile 64000

mongod soft nproc 32000

mongod hard nproc 32000


5、啟動MongoDB

[root@centos ~]# service mongod start

[root@centos ~]# ls /var/lib/mongo/                                     //查看生成的文件

journal  local.0  local.ns  mongod.lock  storage.bson  _tmp

注意:若啟動失敗,可以用下面命令啟動,會有錯誤提示信息

[root@centos ~]# mongod -f /etc/mongod.conf


三、連接MongoDB


1、本機直接運行下面命令進入到mongodb shell中

[root@centos ~]# mongo


2、若監聽端口并不是默認的27017,則連接時需加--port選項,例如端口號被修改為27018:

[root@centos ~]# mongo --port 27018


3、遠程連接MongoDB,需要加--host選項,例如

[root@centos ~]# mongo --host 127.0.0.1


4、如果設置了驗證,則連接時需加上用戶名和密碼(與MySQL相似),例如

[root@centos ~]# mongo -utpp -p123456                //用戶名tpp,密碼123456


四、MongoDB用戶管理


1、mongodb用戶是針對庫來的,建立用戶時要先進入到對應的庫里

> use test

switched to db test

2、創建用戶及角色

> db.createUser({user:"admin",pwd:"123456",roles:[{role:'dbOwner',db:'userdb'}]})

Successfully added user: {

        "user" : "admin",

        "roles" : [

                {

                        "role" : "dbOwner",

                        "db" : "userdb"

                }

        ]

}

3、查看所有用戶

> use admin                                         //只有在admin庫里才能查看到所有用戶

switched to db admin

> db.system.users.find()                        //可以看到之前創建的admin用戶

{ "_id" : "test.admin", "user" : "admin", "db" : "test", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "Ye/s***eMZ5IsVUaNRHN6A==", "storedKey" : "yocgLHpm2MUlL/VmViLZVirJBAE=", "serverKey" : "M6Rj/hxMVbgvaF9TmG4y+k7Dg3g=" } }, "roles" : [ { "role" : "dbOwner", "db" : "userdb" } ] }

4、查看當前庫下所有用戶

> use test                                             //因為admin庫沒有用戶,而test庫有

switched to db test

> show users                                       //查看當前庫下所有用戶  

{

        "_id" : "test.admin",

        "user" : "admin",

        "db" : "test",

        "roles" : [

                {

                        "role" : "dbOwner",

                        "db" : "userdb"

                }

        ]

}

5、刪除用戶

> db.dropUser('admin')                      //要先進入該用戶所在的庫           

true


五、MongoDB庫管理


1、查看版本

> db.version()

3.0.7

2、創建庫

> use userdb                                //如果庫存在就切換

switched to db userdb

> db.createCollection('mycol')       //創建集合mycol,當創建了集合后,我們才可以看到userdb庫

{ "ok" : 1 }

3、查看庫

> show dbs

admin   0.078GB

local   0.078GB

userdb  0.078GB

4、刪除當前所在庫

> db.dropDatabase()

{ "dropped" : "userdb", "ok" : 1 }

> show dbs

admin  0.078GB

local  0.078GB

5、查看當前庫狀態信息

> use admin

switched to db admin

> db.stats()

{

        "db" : "admin",

        "collections" : 4,

        "objects" : 10,

        "avgObjSize" : 67.2,

        "dataSize" : 672,

        "storageSize" : 28672,

        "numExtents" : 4,

        "indexes" : 3,

        "indexSize" : 24528,

        "fileSize" : 67108864,

        "nsSizeMB" : 16,

        "extentFreeList" : {

                "num" : 0,

                "totalSize" : 0

        },

        "dataFileVersion" : {

                "major" : 4,

                "minor" : 22

        },

        "ok" : 1

}

6、查看mongodb服務器的狀態

> db.serverStatus()


六、MongoDB創建集合


語法:db.cretateCollection(name,option)

> use mydb

switched to db mydb

> db.createCollection('myclo',{capped:true,autoIndexID:true,size:6142800,max:10000})

{ "ok" : 1 }

語法說明

name:集合的名字

option:用來配置集合的參數(都為可選)

1)capped true/false:如果為true,則啟用封頂集合,封頂集合是固定大小的集合,當它達到其最大值,會自動覆蓋最早的條目;如果為false,則也需要指定尺寸參數。

2)autoIndexID true/false:如果為true,自動創建索引_id字段的默認值是false。

3)size:指定最大大小字節封頂集合;如果封頂是true,那么還需指定這個字段,單位為B。

4)max:指定封頂集合允許在文件的最大數量。


七、MongoDB數據管理


1、查看集合

> show collections                   //也可以使用show tables

myclo

system.indexes

2、插入文檔數據

> db.Account.insert({AccountID:1,UserName:"123",password:"123456"})

WriteResult({ "nInserted" : 1 })

> db.Account.insert({AccountID:2,UserName:'aaa',password:'123456'})

WriteResult({ "nInserted" : 1 })

注意:如果Account集合不存在,直接插入數據,mongodb會自動創建該集合

3、更新文檔數據

> db.Account.update({AccountID:1},{"$set":{"Age":20}})

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

4、查看所有文檔

> db.Account.find()

{ "_id" : ObjectId("5666000a6ee7f810bc23f731"), "AccountID" : 1, "UserName" : "123", "password" : "123456", "Age" : 20 }

{ "_id" : ObjectId("566601e16ee7f810bc23f732"), "AccountID" : 2, "UserName" : "aaa", "password" : "123456" }

5、根據條件查詢文檔

> db.Account.find({AccountID:2})

{ "_id" : ObjectId("566601e16ee7f810bc23f732"), "AccountID" : 2, "UserName" : "aaa", "password" : "123456" }

> db.Account.find({"UserName":"aaa"})

{ "_id" : ObjectId("566601e16ee7f810bc23f732"), "AccountID" : 2, "UserName" : "aaa", "password" : "123456" }

6、根據條件刪除文檔

> db.Account.remove({AccountID:1})

WriteResult({ "nRemoved" : 1 })

> db.Account.find()

{ "_id" : ObjectId("566601e16ee7f810bc23f732"), "AccountID" : 2, "UserName" : "aaa", "password" : "123456" }

7、刪除集合

> db.Account.drop()

true

> show collections

myclo

system.indexes

8、查看集合狀態

> use mydb                                 //先進入該庫

switched to db mydb

> db.printCollectionStats()

myclo

{

        "ns" : "mydb.myclo",

        "count" : 0,

        "size" : 0,

        "numExtents" : 1,

        "storageSize" : 6144000,

        "lastExtentSize" : 6144000,

        "paddingFactor" : 1,

        "paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.",

        "userFlags" : 1,

        "capped" : true,

        "max" : 10000,

        "maxSize" : 6144000,

        "nindexes" : 1,

        "totalIndexSize" : 8176,

        "indexSizes" : {

                "_id_" : 8176

        },

        "ok" : 1

}

---

system.indexes

{

        "ns" : "mydb.system.indexes",

        "count" : 1,

        "size" : 112,

        "avgObjSize" : 112,

        "numExtents" : 1,

        "storageSize" : 8192,

        "lastExtentSize" : 8192,

        "paddingFactor" : 1,

        "paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.",

        "userFlags" : 0,

        "capped" : false,

        "nindexes" : 0,

        "totalIndexSize" : 0,

        "indexSizes" : {


        },

        "ok" : 1

}

---



參考文章

MongoDB用戶與角色管理的介紹:http://bbs.51cto.com/thread-1146654-1.html



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠州市| 屏东县| 阆中市| 福鼎市| 资溪县| 陈巴尔虎旗| 绥化市| 特克斯县| 旅游| 盐亭县| 中阳县| 沙坪坝区| 唐山市| 奉新县| 宣化县| 巴东县| 台中市| 平遥县| 漳州市| 郑州市| 夏邑县| 建瓯市| 湘乡市| 平阴县| 乌拉特中旗| 安义县| 叙永县| 常宁市| 营口市| 改则县| 重庆市| 四川省| 肇东市| 林周县| 武城县| 巴马| 湘乡市| 澜沧| 双牌县| 达孜县| 呼伦贝尔市|