MongoBD 日常操作小節

靜以致遠√團團發表於2016-08-05
一、開啟Mongodb 密碼驗證功能
預設安裝完mongodb是不用密碼驗證的,直接輸入mongo就可以登入資料庫進行相關操作,設定引數auth=true啟動mongodb密碼驗證功能,開啟改功能步驟如下:
①、修改引數檔案auth=false,並重啟mongodb
②、登入資料庫,建立管理員使用者(預設是沒有管理員賬戶的)
[root@mongodb ~] # mongo
> user admin
db.createUser(  
  {  
    user: "admin",  
    pwd: "admin",  
    roles: [ { role: "root", db: "admin" } ]  
  }  
) 

db.createUser(  
  {  
    user: "root",  
    pwd: "mongotest",  
    roles: [ { role: "root", db: "admin" } ]  
  }  
) 

③、修改引數檔案auth=true,重啟資料庫,使用admin使用者登入資料庫
mongo 127.0.0.1:27017/admin(database) -u admin(username)  -p admin(password)
或者
[root@mongodb ~] # mongo
> use admin
> db.auth("admin","admin");

二、使用者許可權管理

建立user文件,定義了使用者的以下形式:
create
{ user: "<name>",
  pwd: "<cleartext password>",
  customData: { <any information> },
  roles: [
    { role: "<role>", db: "<database>" } | "<role>",
    ...
  ]
}

user文件欄位介紹:
user欄位,為新使用者的名字;
pwd欄位,使用者的密碼;
cusomData欄位,為任意內容,例如可以為使用者全名介紹;
roles欄位,指定使用者的角色,可以用一個空陣列給新使用者設定空角色;
在roles欄位,可以指定內建角色和使用者定義的角色。

1. 資料庫使用者角色:read、readWrite;
2. 資料庫管理角色:dbAdmin、dbOwner、userAdmin;
3. 叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 備份恢復角色:backup、restore;
5. 所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超級使用者角色:root  
// 這裡還有幾個角色間接或直接提供了系統超級使用者的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 內部角色:__system

示例:
db.createUser(  
  {  
    user: "admin1",  
    pwd: "admin1",  
    roles: [ 
                { role: "read", db: "mydb" }
              ]  
  }  
) 

db.createUser(  
  {  
    user: "testuser",  
    pwd: "testuser",  
    roles: [ 
                { role: "dbAdmin", db: "admin" },
                { role: "backup", db: "admin" }
              ]  
  }  
) 
db.auth("testuser","testuser");
查詢使用者資訊和刪除使用者
db.system.users.find();
db.system.users.remove({user:"pmsadapter"});

關閉mongo
mongod  --shutdown  --dbpath /database/mongodb/data/
 > use admin;
switched to db admin

db.shutdownServer();

三、匯入匯出小結
匯出dbname下collectionname 表到 /home/area.dat
mongoexport -d dbname -c collectionname -o /home/area.dat
匯入
mongoimport -d dbname -c collectionname /home/area.dat

匯出iflashbuy_log資料庫/home/my_mongodb_dump
mongodump -d iflashbuy_log -o /home/my_mongodb_dump
恢復資料庫
mongorestore -d my_mongodb  /home/my_mongodb_dump








db.createUser( { "user" : "test",
                 "pwd": "test",
                 "customData" : { test:test },
                 "roles" : [ { role: "clusterAdmin", db: "admin" },
                             { role: "readAnyDatabase", db: "admin" },
                             "readWrite"
                             ] }
db.createUser(  
  {  
    user: "admin",  
    pwd: "admin",  
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },
                { role: "userAdminAnyDatabase", db: "admin" } ]  
  }  
)  

db.createUser(  
  {  
    user: "admin1",  
    pwd: "admin1",  
    roles: [ { role: "root", db: "mydb" } ]  
  }  
)  

db.createUser(  
  {  
    user: "admin11",  
    pwd: "admin11",  
    roles: [ { role: "root", db: "mydb" } ]  
  }  
)



db.createUser(  
  {  
    user: "admin2",  
    pwd: "admin2",  
    roles: [ { role: "dbAdmin", db: "mydb" } ]  
  }  
)  


db.createUser(  
  {  
    user: "admin3",  
    pwd: "admin3",  
    roles: [ { role: "readWriteAnyDatabase", db: "mydb" } ]  
  }  
) 

db.createUser(  
  {  
    user: "admin3",  
    pwd: "admin3",  
    roles: [ { role: "dbAdminAnyDatabase", db: "mydb" } ]  
  }  
) 

db.createUser(  
  {  
    user: "admin3",  
    pwd: "admin3",  
    roles: [ { role: "dbAdminAnyDatabase", db: "mydb" } ]  
  }  
) 



db.createUser(  
{  
user: "user001",  
pwd: "user001",  
roles: [ { role: "readWrite", db: "mydb" } ]  
}  
)


>show dbs
local   0.078125GB
ttlsa_com       0.203125GB
>db
ttlsa_com
>db.ttlsa_com.getDB()
ttlsa_com
>show collections
system.indexes
>db.dropDatabase()
{"dropped":"ttlsa_com","ok":1}
>db
ttlsa_com
>show dbs


匯出查詢結果到excel
mongoexport -d pmsadapterlog-ly -c pms_log_resv -q "{'msgType':'crsnewresv'}" -f crsnum,createTime,usedTime,updateTime --csv -o pms_log_resv20160127.csv



在 從server 上檢視主從複製的狀態
> db.printReplicationInfo()
this is a slave, printing slave replication info.
source:   10.48.255.244:27017
 syncedTo: Thu Aug 16 2012 18:33:27 GMT+0000 (UTC)
 = 18 secs ago (0.01hrs)
> db.printSlaveReplicationInfo()
source:   10.48.255.244:27017
 syncedTo: Thu Aug 16 2012 18:34:37 GMT+0000 (UTC)
 = 20 secs ago (0.01hrs)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29320885/viewspace-2123012/,如需轉載,請註明出處,否則將追究法律責任。

相關文章