本文没啥特别深的技术点, 就是作为mongo新手的我的一篇踩坑入门笔记(我踩了2天), 希望帮助其他新手快速把mongo部署好.
如果你不想阅读本文的文字, 那么按顺序执行命令即可完成安装部署, 最后实现在mongo中拥有"root"账号.
安装mongo
shell docker pull mongo
初始化容器
shell docker run -d -p 27017:27017 -v /data/mongo/database:/data --name mongo mongo --auth
参数解释:
-p
: 把容器中的docker的端口映射到真实的服务器, 语法: 服务器端口 : 容器内端口
-v
: 把容器中的docker的存储目录映射到真实的服务器目录, 语法: 服务器真实文件夹 : 容器内目录
--name
: 给容器起个名, 这样后面docker exec
的时候, 可以直接使用这里起的名字, 我们这里起名"mongo"
--auth
: 默认mongo不需要用户密码也是可以登陆的, 只有开启了auth, 才能保证只有有权限的账号能登陆.
进入mongo容器
shell docker exec -it mongo /bin/bash
创建账户
- 先打开mongo
shell mongo
- 进入mongo命令行后, 首先切换到admin库. admin是默认存在的库.
shell use admin
- 进入admin库后就可以开始创建账户了.
javascript db.createUser({ user: "root", pwd: "xxxxxx", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
这里创建了用户root, 密码为'xxxxxx', 角色为"可以"管理"所有数据库的管理员", 注意这里的"管理"不包括"增删改查", 所以请继续往下看.
给其他库授权
刚刚我们只是给了"root"用户管理所有数据库的权限,但是不包括"增删改查", 接下来我们给"root"用户对"xxxDB"的所有控制权限, 这权限对应的角色"dbOwner". javascript db.grantRolesToUser('root',[{role:'dbOwner',db:'xxxDB'}])
退出命令(exit)
退出mongo和退出容器的命令都是: shell exit