mongodb 經常使用操做命令

1.關閉mongodb
use admin
db.shutdownServer()mongodb

2.報錯 not master and slaveok=false
rs.slaveOk();數據庫

3.查看集羣副本的狀態
rs.status();rs.config()rest

4.重置集羣配置文件
config = { _id:"repl_test", members:[{_id:2,host:"10.40.6.110:27017"}]}
rs.reconfig(config, { force: true})繼承

5.幾個權限角色解釋
dbAdmin:「數據庫管理員」,能夠對指定的數據庫,進行建立索引、schema調整、統計信息蒐集等,好比「dbStats」、「collStats」、「createCollection」、「createIndex」等;可是它不能建立用戶和role
dbAdminAnyDatabase:是全部數據庫的管理員
dbOwner:「數據庫持有者」,繼承「readWrite」、「dbAdmin」、「userAdmin」三種角色
root:root角色是一個超級角色,此角色的用戶具備全部的操做權限
userAdmin:「用戶管理員」,能夠對指定的數據庫,建立用戶、修改用戶的roles;這種角色,只能管理用戶,不能訪問數據庫的數據
userAdminAnyDatabase:是全部數據庫的用戶管理員索引

數據庫用戶角色:read、readWrite;
數據庫管理角色:dbAdmin、dbOwner、userAdmin;
集羣管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
備份恢復角色:backup、restore;
全部數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超級用戶角色:root
// 這裏還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
內部角色:__systemssl

6.建立用戶帳號rem

use admin;
db.createUser(
{
user: "zhanghao",
pwd: "123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)get

db.createUser(
{
user: "zhanghao_root",
pwd: "123",
roles: [ { role: "root", db: "admin" } ]
}
)
添加管理員用戶openssl

修改密碼
db.updateUser( "root",{pwd:"123"});
db.changeUserPassword("username", "xxx")
密碼認證
db.auth("admin","password");
刪除用戶
db.dropUser("football");
查看用戶信息
db.runCommand({usersInfo:"userName"})
數據庫賬號是跟着數據庫來走的,哪裏建立哪裏認證,意思在admin庫建立的其餘庫的帳號認證信息只能在admin下認證
查看全部庫的全部用戶信息
db.system.users.find().pretty()
查看當前數據庫的信息
db.getName() db.stats()it

7.建立keyfile文件,在一臺機器生成,而後傳到其餘副本的機器
openssl rand -base64 741 > /data/mongodb/keyfile
chmod 600 /data/mongodb/keyfile

8.將新的節點加入集羣
rs.add("10.40.6.108:27017")

9.查看複製狀況
db.printSlaveReplicationInfo()

10.修改集羣的priority,強制把指定的節點升級爲主
cfg=rs.conf()
cfg.members[1].priority=2
rs.reconfig(cfg)

11.移除某個節點
rs.remove("10.40.6.68:27017")

12.添加仲裁節點,若是原來是數據節點,會致使重啓rs.addArb("10.40.6.68:27017")

相關文章
相關標籤/搜索