docker pull mongo
docker run -v /docker/mongo/data:/data/db -v /docker/mongo/backup:/data/backup -v /docker/mongo/conf:/data/configdb --name mongo -p 27017:27017 -d mongo --auth
登录容器
docker exec -it mongo bash
登录
mongo admin
创建用户(如果报错有可能/docker/mongo 目录没有清空是上一次创建的库中已存在用户或登录方式需要授权方式。)
每个库都有自己的帐号
db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]})
可选的角色
read |
允许用户读取指定数据库 |
readWrite |
允许用户读写指定数据库 |
dbAdmin |
允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
userAdmin |
允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 |
clusterAdmin |
只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 |
readAnyDatabase |
只在admin数据库中可用,赋予用户所有数据库的读权限 |
readWriteAnyDatabase |
只在admin数据库中可用,赋予用户所有数据库的读写权限 |
userAdminAnyDatabase |
只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 |
dbAdminAnyDatabase |
只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限 |
root |
只在admin数据库中可用。超级账号,超级权限 |
ctrl+c退出
以授权方式登录
mongo -u root
输入密码root
查看数据库列表
show databases
查看当前数据库
db
创建数据库
use simple
注意当前并没有真正创建数据库,需要插入数据后才真正执行创建
插入一条数据
db.members.insertOne({"name":"zh"});
再执行show dbs
可以查看到数据库 siimple已创建
show tables
可以查到 members表已创建
db.members.find()
默认主键_id,可以显示指定
db.members.insertOne({_id:1,name:"zh"});
授权方式启动
mongod -auth