Docker安装MongoDB并使用Navicat连接

MongoDB简介:MongoDB是一个基于分布式文件存储的数据库 。由C++语言编写 。旨在为WEB应用提供可扩展的高性能数据存储解决方案 。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的 。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型 。MongoDB最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引 。
查看可用的MongoDB版本:

访问DokcerHub中的MongoDB镜像库地址:https://hub.docker.com/_/mongo/tags
可以通过 Sort by 查看其他版本的MongoDB , 查看最新版本MongoDB镜像(mongo:latest):https://hub.docker.com/_/mongo/tags?page=1&name=latest

Docker安装MongoDB并使用Navicat连接

文章插图
此外,我们还可以用docker search mongo命令来查看可用版本:

Docker安装MongoDB并使用Navicat连接

文章插图
拉取最新版本的MongoDB镜像:docker pull mongo:latest
注意:tag是可选的,tag表示标签,多为软件的版本,默认是latest版本(最新版)

Docker安装MongoDB并使用Navicat连接

文章插图
验证MongoDB镜像是否成功拉取到本地:使用以下命令来查看MongoDB镜像是否成功拉取到本地:
docker images
Docker安装MongoDB并使用Navicat连接

文章插图
创建并运行一个MongoDB容器:docker run -itd --name mongo-test -p 27017:27017 mongo --auth参数说明:
  • -itd:其中,i是交互式操作,t是一个终端,d指的是在后台运行 。
  • --name mongo-test:容器名称
  • -p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口 。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务 。
  • --auth:需要密码才能访问容器服务 。

Docker安装MongoDB并使用Navicat连接

文章插图

Docker安装MongoDB并使用Navicat连接

文章插图
解决无法正常执行mongo命令问题进入容器:
docker exec -it  mongo-test mongo
Docker安装MongoDB并使用Navicat连接

文章插图
 异常原因:
OCI runtime exec failed: exec failed: unable to start container process: exec: "mongo": executable file not found in $PATH: unknown
官网解决方案:
https://github.com/docker-library/mongo/issues/558
mongo5.0以上的版本使用mongo来执行mongodb命令已经不支持了,你需要改用mongosh来替代mongo!

Docker安装MongoDB并使用Navicat连接

文章插图
添加MongoDB连接用户和密码:1、进入创建的MongoDB容器docker exec -it  mongo-test mongosh
Docker安装MongoDB并使用Navicat连接

文章插图
2、创建MongoDB用户#进入 admin 的数据库use admin#创建管理员用户db.createUser({user: "admin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]} ) #创建有可读写权限的用户. 对于一个特定的数据库, 比如'demo' db.createUser({user: 'test',pwd: '123456',roles: [{role: "read", db: "demo"}] })
Docker安装MongoDB并使用Navicat连接

文章插图
服务器配置27017的开放端口:
Docker安装MongoDB并使用Navicat连接

文章插图
Navicat连接mongoDB1.连接MongoDB点击这个位置
Docker安装MongoDB并使用Navicat连接

文章插图
2、连接参数介绍:stand alone:独立的
shard cluster:分片集群
replica set:复制集
SRV record:
SRV记录是DNS服务器的数据库中支持的一种资源记录的类型,它记录了哪台计算机提供了哪个服务这么一个简单的信息 。
SRV 记录:一般是为Microsoft的活动目录设置时的应用 。DNS可以独立于活动目录,但是活动目录必须有DNS的帮助才能工作 。
为了活动目录能够正常的工作 , DNS服务器必须支持服务定位(SRV)资源记录,资源记录把服务名字映射为提供服务的服务器名字 。

推荐阅读