mongodb的常用命令
Updated:
1. 查找mongdb的安装位置
find / -name mongo
/usr/local/mongodb-linux-x86_64-rhel62-3.4.1/bin/mongod
2. 看一下mongodb是否已经启动
netstat -nltp|grep mongod
ps -ef | grep mongo
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 5062/mongod
3. 切换到bin目录下
cd /usr/local/mongodb-linux-x86_64-rhel62-3.4.1/bin
./ mongod –dbpath=/data/mongodata/rs3 –logpath=/data/mongodata/rs1/rs3.log –fork –port 27017
./mongod –auth –dbpath=/xxx/data/mongo –logpath=/xxx/data/mongo/mongo.log –fork
./bin/mongod -f config.conf –logappend
./bin/mongod –auth -f config.conf –logappend
–auth 是授权登录启动
配置文件:
dbpath=/data/mongodb/master
dbpath=/xxx/data/mongo
logpath=/xxx/log/mongo.log
fork=true
auth=true
dbpath是数据库路径
logpath是日志路径
fork 是后台启动
port 是指定端口
4. 关闭mongodb,可以直接杀进程号,也可以关闭服务
ps -ef|grep mongod
kill -4 5465
service mongod stop
5. 备份mongodb
./mongodump
会整库备份到当前目录下的dump下。
如果是需要认证登录的话,可以用下面命令备份
./mongodump -u root -p mypassword
6. 恢复mongodb
./mongorestore
同样会从dump目录下整库恢复
7. 创建用户
创建管理员
use admin
db.createUser({user:”root”,pwd:”mypassword”,roles:[{role:”root”,db:”admin”}]})
Successfully added user: {
“user” : “root”,
“roles” : [
{
“role” : “root”,
“db” : “admin”
}
]
}
创建某个数据库管理员
use xxx
db.createUser({user:”myusername”,pwd:”mypassword”,roles:[{role:”dbOwner”,db:”xxx”}]})
显示数据库列表
show dbs
显示用户列表
show users
删除用户
db.system.users.remove({user:”root”})
用户列表:
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase) - 内部角色:__system
具体角色:
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
执行命令出错:
2017-11-25T23:54:48.862+0800 E QUERY [main] Error: listDatabases failed:{
“ok” : 0,
“errmsg” : “not authorized on admin to execute command { listDatabases: 1.0 }”,
“code” : 13,
“codeName” : “Unauthorized”
} :
必须先执行
db.auth(“root”,”mypassword”)
关闭数据库
db.shutdownServer()