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")

相关文章
相关标签/搜索