使用docker创建mongoDB数据库容器
下载mongo镜像
docker pull mongo
后面没有版本后默认下载最新的
下载完成后查看
docker images
创建并启动mongo容器
创建一个本地的文件夹, 用来进行数据文件夹映射
数据文件保存在本地比较好, 这样即使删除了容器数据库文件还在,数据不会丢失
创建启动容器
docker run -d -p 27017:27017 --restart always --name mongodb -v E:\Docker_file\mongo\data\db:/data/db mongo --auth
参数说明:
-d : 允许容器后台运行-p 27017:27017 : 进行端口映射--restart always: 容器随docker启动而启动-v E:\Docker_file\mongo\data\db:/data/db : 数据库文件地址映射,--auth : 需要密码才能访问容器服务
添加用户和密码
进入容器内部
docker
exec -it mongodb mongo admin
切换到admin库
如果当前是admin数据库, 则这步可以不执行
use admin
;
创建名和密码都为 admin 的用户
db.createUser
({ user:
'admin',pwd:
'admin',roles:
[ { role:
'userAdminAnyDatabase', db:
'admin'}]});
连接数据库
db.auth
("admin",
"admin")
使用工具连接数据库
数据用户名和密码, 测试连接
可能会出现的问题
在操作数据库的时候,可能会出现
这是权限造成的, 我试了试, 创建用户的时候, 将用户设置为超级用户即可
创建一个用户名和密码都为 root 的超级用户
db.createUser
({ user:
"root" , pwd:
"root", roles:
["root"]})
这样在操作数据看就没有问题了
也可以修改 admin 用户的权限来解决
db.grantRolesToUser
( "admin",
[{ role:
"root", db:
"admin"}])
也可以修改 admin 用户的权限来解决
db.grantRolesToUser
( "admin",
[{ role:
"root", db:
"admin"}])
注意: 用户相关操作一定要在 admin 数据库中进行!!!