-
docker pull mongo:4.0.10 (2019-07-22 最新4.0.10)
-
创建db目录 和 mongo.conf
mongo.conf 内容:
bind_ip_all=true
port=27017
dbpath=/data/db
logappend=false
auth=true
- docker run -d --name <你自己docker容器命名>
-p 27017:27017
-v <你本地挂载db目录>:/data/db/ \
-v <你本地mongo.conf目录>:/etc/mongo/ \
-e MONGO_INITDB_ROOT_USERNAME=你的用户名
-e MONGO_INITDB_ROOT_PASSWORD=你的密码
mongo --config /etc/mongo/mongo.conf
我的例子:
我的docker容器命名 mongo-qin
我的db 目录 :/usr/local/docker/mongo/db
mongo.conf 位置: /usr/local/docker/mongo/etc/mongo.conf
docker run -d --name mongo-qin \
-p 27017:27017 \
-v /usr/local/docker/mongo/db:/data/db/ \
-v /usr/local/docker/mongo/etc:/etc/mongo/ \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=373616885 \
mongo --config /etc/mongo/mongo.conf
- 进入容器docker
docker exec -it mongo-qin /bin/bash
- 连接admin
mongo ip:port/dbname -u 用户名 -p 密码 --authenticationDatabase admin
我的例子:
mongo 127.0.0.1:27017/admin -u root -p 373616885 --authenticationDatabase admin
- 认证admin
先 use admin 然后 db.auth 认证 成功 1
use admin
db.auth('root','373616885')
查看用户:
db.system.users.find()
- 创建自己的db和用户
use mongo
db.createUser({user:"mongo",pwd:"373616885",roles:[{role:"readWrite",db:"mongo"}]})
db.auth('mongo','373616885')
- 愉快退出然后本机连接docker遇到问题:
mongo 172.19.241.16:27017/admin -u root -p 373616885 --authenticationDatabase admin
MongoDB shell version: 2.6.10
connecting to: 172.19.241.16:27017/admin
2019-07-22T22:34:35.755+0800 Error: 2 { ok: 0.0, errmsg: "Auth mechanism not specified", code: 2, codeName: "BadValue" } at src/mongo/shell/db.js:1287
exception: login failed
- 解决:原文:https://blog.csdn.net/pcjdpcq/article/details/84141540
问题:MongoDB server 版本是4.0.10,客户端版本是 2.6.10
删除 之前的 mongodb-clients
sudo apt-get purge mongodb-clients
安装了整个 MongoDB
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
- 再次连接愉快的玩耍
mongo 172.19.241.16:27017/admin -u root -p 373616885 --authenticationDatabase admin