docker安装MongoDB+navicat链接mongodb

本文详细介绍如何使用Docker部署MongoDB数据库,包括查找和拉取镜像、配置账户密码、使用Navicat连接以及解决常见问题等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、查看可用的 MongoDB版本

1、docker官网查看MongoDB镜像地址及版本信息:https://hub.docker.com/_/mongo?tab=tags

每个版本后都有拉取mongo镜像的命令。

 

2、用 docker search mongo 命令来查看可用版本

二、拉取 MongoDB 镜像

我们直接拉去最新的MongoDB镜像。

docker pull mongo:latest

 

三、查看本地镜像

docker images

四、运行容器

使用以下命令来运行 MongoDB 容器:

docker run -itd --name mongo01 -p 27017:27017 mongo:latest --auth

参数说明:

  • --name mongo01:MongoDB容器指定一个名称
  • -p 27017:27017 :指定端口映射,映射容器服务的 27017 端口到宿主机的 27017 端口(主机「宿主」端口:容器端口),主机「宿主」可以直接通过宿主ip:27017 访问到 MongoDB 的服务。
  • --auth:需要密码才能访问容器服务

五、安装成功

通过 docker ps 命令查看是否安装成功:

 

六、配置账户密码

1、按照菜鸟教程创建帐号,之后在使用该帐号时显示权限不足

由于此数据库为个人使用,所以直接使用超级管理员账户,需要超级管理员账户可直接查看第二步。

以admin进入mongodb

docker exec -it mongo01 mongo admin    #mongo01也可以改为CONTAINER_ID    

以下为个人安装mongodb时,按照菜鸟教程所创建,之后在navicate中使用该帐号时显示权限不足。 

创建一个名为 admin,密码为 123456 的用户

db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});

试使用上面创建的用户信息进行连接
db.auth('admin', '123456')

退出输入:exit即可

2、创建超级管理员帐号

mongodb数据库角色:

1.数据库用户角色:read、readWrite;
2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4.备份恢复角色:backup、restore
5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6.超级用户角色:root

以admin进入mongodb

docker exec -it mongo01 mongo admin    #mongo01也可以改为CONTAINER_ID    

创建一个名为root,密码为root的用户,权限为超级管理员

db.createUser({ user:'root',pwd:'root',roles:[ { role:'root', db: 'admin'}]});

若创建账户时报权限错误时(下方为错误截图),这个主要的原因是没有切库,执行 use admin 后再执行添加用户命令即可。

七、navicat链接安装好的mongodb

Mac安装navicat记录可查看此链接:https://blog.csdn.net/qq_34497272/article/details/104519853

在Mac主机通过navicat链接虚拟主机安装好的mongodb,由于navicat安装的新版,支持链接mongodb

注:显示链接成功,但是进去之后不显示任何数据库。

解决方案:点击查看,选择显示隐藏的项目,然后重新打开mongodb即可看到隐藏的数据库。

八、重启虚拟机之后发现mongodb未启动

通过docker ps 命令查询不到刚才安装的名字为mongo01的数据库服务。

docker ps        #查看运行中的容器
docker ps -a     #查看所有容器

 

九、当镜像实例已经存在时,重新启动镜像 

docker restart 容器名称/容器ID       #重启
docker stop 容器名称/容器ID          #停止
docker start 容器名称/容器ID         #启动
docker rm 容器名称/容器ID            #删除

例如重启mongo01的镜像:docker restart 0e5d90f13783 或者 docker restart mongo01

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值