docker部署mongodb与使用navicat连接和创建库,集合

1:拉去momgodb镜像

在这里插入图片描述

2:拉去成功后,通过docker-compose.yml配置文件启动mongodb,docker-compose.yml配置如下(注意只需要mongod.conf文件,里面内容可以为空)

version: '3.8'
services:

  mongodb-1:
    container_name: mongodb
    image: mongo	
    ports:
      - "27017:27017"
    volumes:
      - G:\temptemptemp\mongodb\data:/data/db
      - G:\temptemptemp\mongodb\config\mongod.conf:/etc/mongod.conf
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root22
      - MONGO_INITDB_ROOT_PASSWORD=root33
      - MONGODB_DATABASE=mydb
      - MONGODB_DISABLE_JAVASCRIPT=true
      - MONGODB_AUTH=yes

3:进入容器mongodb操作(必须输入密码才能操作后续db.auth(“账号”,“密码”),数据库admin是默认的),也可以使用navicat操作,如标题5

PS C:\Users\dell>
PS C:\Users\dell> docker ps
CONTAINER ID   IMAGE     COMMAND                   CREATED        STATUS        PORTS                      NAMES
707d09b9c8f5   mongo     "docker-entrypoint.s…"   28 hours ago   Up 28 hours   0.0.0.0:27017->27017/tcp   mongodb
PS C:\Users\dell> docker exec -it mongodb mongosh admin
Current Mongosh Log ID: 654d1859a8446ad93cccb0cf
Connecting to:          mongodb://127.0.0.1:27017/admin?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.0.1
Using MongoDB:          7.0.2
Using Mongosh:          2.0.1

For mongosh info see: https://docs.mongodb.com/mongodb-shell/

admin> db.auth("root22","root33");
{ ok: 1 }
admin> use testdb;
switched to db testdb
testdb> db.createUser({ user:'root1',pwd:'root1',roles:[ { role:'readWrite', db: 'testdb'}]});
{ ok: 1 }
testdb> db.auth("root1","root1");
{ ok: 1 }
testdb> db.createCollection("testTable");
{ ok: 1 }
testdb>

4:注意事项

1.都需要输入账号密码才能操作

2.密码最好不要用纯数字(使用纯数字的话,在yml配置需要用"",不然一直验证密码失效)

5:使用navicat连接

在这里插入图片描述

5-1:连接打开成功后,是空空的,因为admin数据库不显示

在这里插入图片描述

5-2:新建数据库new_slave,双击会提示如下内容,

在这里插入图片描述

5-3:给数据库new_slave添加一个用户

在这里插入图片描述

5-4:这个时候new_slave还没有集合,所以需要给创建集合如下,创建命令

// ----------------------------
// Collection structure for tt_offline
// ----------------------------
db.getCollection("tt_offline").drop();
db.createCollection("tt_offline",{
    validator: {
        $jsonSchema: {
            properties: {
                _id: {
                    bsonType: "string",
                    description: "文档id,与离线数据id一致"
                },
                "offline_id": {
                    bsonType: "string",
                    description: "离线数据id"
                },
                "offline_content": {
                    bsonType: "string",
                    description: "离线内容"
                },
                "create_time": {
                    bsonType: "string",
                    description: "创建时间"
                }
            },
            required: [
                "_id",
                "offline_id",
                "offline_content",
                "create_time"
            ]
        }
    },
    validationLevel: "strict",
    validationAction: "error"
});
db.getCollection("tt_offline").createIndex({
    "offline_id": NumberInt("1")
}, {
    name: "offline_id",
    unique: true
});

5-5:再点击用户,给用户slave分配那个new_slave数据库的权限

在这里插入图片描述

5-6:内置角色

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值