1、拉取MongoDB镜像,这里拉取最新版本。
docker pull mongo
2、运行容器
docker run -d --name mongo -p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
mongo:latest --auth
#由于 mongodb 默认情况下,不需要用户名密码就可以使用,使用 --auth 参数表示需要用户名和密码登录。
3 常用命令
3.1 mongo中角色对应权限
权限 | 说明 |
---|---|
read | 允许用户读取指定数据库 |
readWrite | 允许用户读写指定数据库 |
dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
userAdmin | 允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户 |
clusterAdmin | 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 |
readAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读权限 |
readWriteAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读写权限 |
userAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 |
dbAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限 |
root | 只在admin数据库中可用。超级账号,超级权限 |
3.2 创建用户并赋予root权限
#登录数据库
mongo admin -u admin -p 123456
#创建用户,首先进入admin数据库创建属于他的用户
use admin
db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]}
);
#验证用户账号
db.auth('root', '123456');
#查看这个数据库中的所有用户‘
show users;
’
登入这个用户并指定数据库
mongo -u root -p 1234566 --authenticationDatabase=admin
3.3 其他相关命令
//更新用户角色,修改用户权限,不会覆盖原权限信息,只新增权限:
db.updateUser("root",{roles:[{role:"readWrite",db:"admin"}]})
//更新用户密码
db.changeUserPassword("root","1234567")
//查看所有用户
show users
//删除用户
db.dropUser("root")
1.查看数据库(非admin数据库的用户不能使用数据库命令)
show dbs
2.查看当前所在库:db
3.切换数据库:use name
4.创建数据库: 不会主动创建,切换数据库创建文档会保存库,只切换库不创建文档不会保存库。
5.创建集合:db.createCollection(‘lijia’)
6. 查看集合:show tables
7.插入数据: db.集合.insert({key:value})
8.查询数据:db.集合.find()
9.删除集合:db.lijia.drop()
10.删除数据库:db.dropDatabase() 注:(我是root权限,进入库后删除)
11.查询集合中有多少文档:db.集合.count()