隨筆 - 0, 文章 - 264, 評論 - 170, 引用 - 0
          數(shù)據(jù)加載中……

          MongoDB基本使用(注:轉(zhuǎn)載于http://hi.baidu.com/yangdaming1983/item/27f25de9f6588cc5bbf37d91)

          MongoDB基本使用

          一、啟動:

          ./mongod --dbpath=/data/mongodb --port=27017 --logpath=/data/mongodb/logs &

          mongod --dbpath=/data/mongodb --port 27017 --logpath /data/mongodb/logs --auth --bind_ip 127.0.0.1 &

          連接已有的db:mongo 192.168.0.166:27017

           

          查詢所有數(shù)據(jù)庫

          show dbs 使用test數(shù)據(jù)庫use test 顯示test所有表(collections)show collections 查詢服務(wù)器狀態(tài)db.serverStatus() #只允許某ip訪問
          $ mongod --bind_ip 127.0.0.1

          #指定服務(wù)端口
          $ mongod --port 27017

          #指定數(shù)據(jù)存放路徑
          mongod.exe –port 11111 –dbpath E:\data\mongodb

          綁定 IP 地址,只有本地才可以訪問:

          mongod --bind_ip 127.0.0.1在設(shè)置其它的端口:mongod --bind_ip 127.0.0.1 --port28888添加用戶認(rèn)證:

          添加用戶認(rèn)證必須在啟動 mongod 服務(wù)時添加 --auth 參數(shù):

          mongod --bind_ip 127.0.0.1 --port28888--auth

          注意所有用戶的認(rèn)證信息都保存在每一個數(shù)據(jù)庫的 system.users 集合中。例如:在數(shù)據(jù)庫 projectx 中(就是 use projectx 后)projectx.system.users 會保存所有用戶的信息(這里的用戶是數(shù)據(jù)庫用戶)。

          在最初始的時候 mongodb 都默認(rèn)有一個 admin 數(shù)據(jù)庫(剛開始是空的),而 admin.system.users 中將會保存比在其它數(shù)據(jù)庫中設(shè)置的用戶權(quán)限跟大的用戶信息。

          注 意:當(dāng) admin.system.users 中沒有添加任一一個用戶(即為空)時,即使 mongod 啟動時添加了 --auth 參數(shù),即使,在除 admin 數(shù)據(jù)庫中添加了用戶,此時不進(jìn)行任何認(rèn)證依然可以使用任何操作,知道你在 admin.system.users 中添加了一個用戶。
          如下分別創(chuàng)建兩個用戶:

          在 projectx 中創(chuàng)建用戶名為 user1 密碼為 1resu 的用戶,如下:

          $ ./mongo> use projectx> db.addUser("user1","1resu");

          在 admin 中創(chuàng)建用戶名為 root 密碼為 toor 的用戶,如下:

          $ ./mongo > use admin > db.addUser("root", "toor"); > db.auth("root", "toor"); 1

          ^^^^ 如果認(rèn)證成功會顯示 1
          ^^^^ 用以下命令可以查看所有當(dāng)前選擇的數(shù)據(jù)庫的用戶信息

          > db.system.users.find(); {"_id" : ObjectId("4d761dfc23e14f10be8563c5"), "user" : "root", "readOnly" : false, "pwd" : "6a921fa21bbcd22989efecbcb2340d17"}$ ./mongo > use projectx switched to db dbtest > db.aaaa.insert({aa:"xx"}); unauthorized

          ^^^^ 一旦在 admin 數(shù)據(jù)庫中添加了用戶,
          ^^^^ 那么對數(shù)據(jù)庫的操作必須進(jìn)行認(rèn)證,否則提示 unauthorized

          > db.auth("user1","1resu");
          1
          > db.aaaa.insert({aa:"xx"});
          > db.aaaa.find();
          {"_id" : ObjectId("4d7628638e6ce2eb56b45a41"), "aa" : "xx"}

          ^^^^ 進(jìn)行用戶認(rèn)證后就可以插入數(shù)據(jù)了

          > use projecty
          switched to db projecty
          > db.zzz.insert({aa:"xx"});
          unauthorized

          ^^^^ 由于用戶 user1 只作用于 projectx
          ^^^^ 并沒有對 projecty 的操作權(quán)限
          ^^^^ 而我們卻可以用 admin 庫中的用戶認(rèn)證后進(jìn)行創(chuàng)建,如下

          > use admin
          > db.auth("root","toor");
          1
          > use projecty
          switched to db projecty
          > db.zzz.insert({aa:"xx"});
          > db.zzz.find();
          {"_id" : ObjectId("4d7628638e6ce2eb56b45a41"), "aa" : "xx"}

          ^^^^ 用 admin 庫中的用戶認(rèn)證后就可以創(chuàng)建另一個數(shù)據(jù)庫了
          ^^^^ 所以說明 admin 數(shù)據(jù)庫中的權(quán)限很大,如果沒有指定 readonly 的話
          ^^^^ 它可以進(jìn)行任何操作,很危險

          > use projectx
          > db.addUser("user2","2resu", true);
          {"user" : "user2", "readOnly" : true, "pwd" : "471e31e021a3656044ef3487ea90e0cf"}

          ^^^^ 當(dāng)一 user2 用戶認(rèn)證時,user2 只能對 projectx 進(jìn)行只讀操作。

          刪除用戶
          > use dbname (admin or 51cv ,etc)
          > db.system.users.remove({user:"haha"})

          或db.removeUser('name')
          > db.system.users.find()

          用戶登錄數(shù)據(jù)庫測試
          mongod dbname -u uname -p password
          如:mongo mailaccess -u mailaccess -p 

          1)     進(jìn)入數(shù)據(jù)庫admin

          1use admin

          2)     增加或修改用戶密碼

          1db.addUser('name','pwd')

          3)     查看用戶列表

          1db.system.users.find()

          4)     用戶認(rèn)證

          1db.auth('name','pwd')

          5)     刪除用戶

          1db.removeUser('name')

          6)     查看所有用戶

          1show users

          7)     查看所有數(shù)據(jù)庫

          1show dbs

          8)     查看所有的collection

          1show collections

          9)     查看各collection的狀態(tài)


          db.printCollectionStats()

          10)   查看主從復(fù)制狀態(tài)


          db.printReplicationInfo()

          11)   修復(fù)數(shù)據(jù)庫


          db.repairDatabase()

          12)   設(shè)置記錄profiling,0=off 1=slow 2=all

           
          db.setProfilingLevel(1)

          13)   查看profiling


          show profile

          14)   拷貝數(shù)據(jù)庫


          db.copyDatabase('mail_addr','mail_addr_tmp')

          15)   刪除collection


          db.mail_addr.drop()

          16)   刪除當(dāng)前的數(shù)據(jù)庫


          db.dropDatabase()

          posted on 2012-08-21 21:41 小一敗涂地 閱讀(2092) 評論(1)  編輯  收藏 所屬分類: mongdb、redis、memcache、消息隊列等

          評論

          # re: MongoDB基本使用(注:轉(zhuǎn)載于http://hi.baidu.com/yangdaming1983/item/27f25de9f6588cc5bbf37d91)  回復(fù)  更多評論   

          初學(xué)mongodb,沒看到這個使用測試的具體方法,請問是用什么方式進(jìn)行插入的
          2012-08-29 18:16 | 隱居士
          主站蜘蛛池模板: 连州市| 大理市| 古丈县| 仁化县| 申扎县| 临泽县| 论坛| 庆安县| 金华市| 东安县| 黑水县| 湖口县| 灯塔市| 钟祥市| 闸北区| 翁牛特旗| 仪陇县| 浮山县| 阳春市| 永清县| 迭部县| 江源县| 漳州市| 拉孜县| 平山县| 西峡县| 铜川市| 巴林左旗| 固镇县| 曲水县| 都江堰市| 阿鲁科尔沁旗| 依安县| 衢州市| 会昌县| 阳城县| 阿拉尔市| 石景山区| 汉沽区| 年辖:市辖区| 子长县|