访问mongodb容器一直报错,提示com.mongodb.MongoSecurityException,百度了一下,说是要对mongodb进行插数据,需要有用户名和密码才有权限,下面就来学习下如何创建用户名和密码:
创建需要验证用户权限的 MongoDB 的容器和创建普通 MongoDB 容器区别不大,只是需要在命令末尾添加 --auth 参数,具体操作如下:
docker run -p 27017:27017 -v <LocalDirectoryPath>:/data/db --name docker_mongodb -d mongo --auth
首先登陆mongdb容器:
docker exec -it docker-mongodb mongo admin
其中docker-mongodb是我的mongodb容器名。
进入命令行后,执行:
db.createUser({ user: 'admin', pwd: 'admin', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
创建用户名和密码为admin的用户,设置角色。该用户可以查看所有数据库,但不能创建和删除数据库,如果要使用可以创建数据库的用户,权限使用 root。
创建用户名为yubuyun,密码为123456,拥有数据库weblog的读写权限。
db.createUser(
{
user: "yubuyun",
pwd: "123456",
roles: [ { role: "readWrite", db: "weblog" } ]
}
)
docker run -d -p 8081:8081 --name fileserver --link docker-mongodb:mongodb ed27e79af407