首页 > 数据库 >Docker安装MongoDB并使用Navicat连接

Docker安装MongoDB并使用Navicat连接

时间:2022-10-16 18:11:07浏览次数:73  
标签:mongo MongoDB 27017 Navicat 关系数据库 连接 Docker docker

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 search mongo命令来查看可用版本: 

拉取最新版本的MongoDB镜像:

docker pull mongo:latest

注意:tag是可选的,tag表示标签,多为软件的版本,默认是latest版本(最新版)

验证MongoDB镜像是否成功拉取到本地:

使用以下命令来查看MongoDB镜像是否成功拉取到本地:

docker images

创建并运行一个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:需要密码才能访问容器服务。

解决无法正常执行mongo命令问题

进入容器:

docker exec -it  mongo-test mongo

 异常原因:

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!

添加MongoDB连接用户和密码:

1、进入创建的MongoDB容器

docker exec -it  mongo-test mongosh

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"}]
 })

服务器配置27017的开放端口:

 

Navicat连接mongoDB

1.连接MongoDB点击这个位置

 

2、连接参数介绍:

stand alone:独立的

shard cluster:分片集群

replica set:复制集

SRV record:

SRV记录是DNS服务器的数据库中支持的一种资源记录的类型,它记录了哪台计算机提供了哪个服务这么一个简单的信息。

SRV 记录:一般是为Microsoft的活动目录设置时的应用。DNS可以独立于活动目录,但是活动目录必须有DNS的帮助才能工作。

为了活动目录能够正常的工作,DNS服务器必须支持服务定位(SRV)资源记录,资源记录把服务名字映射为提供服务的服务器名字。

活动目录客户和域控制器使用SRV资源记录决定域控制器的IP地址。

一般情况下,我们连接只需要连接主库查数据,所以选择独立的这个连接方式就可以,填写好常规参数可以点击测试连接是否正常,即可连接!

标签:mongo,MongoDB,27017,Navicat,关系数据库,连接,Docker,docker
From: https://www.cnblogs.com/Can-daydayup/p/16653882.html

相关文章

  • MongoDb基本命令
    基本命令查看当前有哪些数据库#方法1showdatabases#方法2showdbs创建数据库/选择数据库usetest2#如果当前没有test2数据库就会创建test2并切换,有的话直接......
  • 同一应用docker版本和非docker版本共存下,利用shell脚本获取非docker版本pid
    问题场景:在同一VM上部署了同一应用的docker版本和非docker版本,在基于非docke版本应用做jenkinsCI/CD时,通过ps-ef操作获取应用的pid,会受到docker版本应用的干扰,如下以上......
  • Mongodb安装
    下载地址https://www.mongodb.com/try/download/community安装步骤先安装依赖sudoyuminstalllibcurlopensslxz-libs解压tar包tar-zxvfmongodb-linux-*-5......
  • navicat连接mysql数据库提示失败,提示2059错误
    Navicat连接数据库失败,提示2059错误,如下图参考资料发现使用的数据库版本是mysql8版本,不是mysql5.7版本MYSQL新版本(8以上版本)的用户登录账户加密方式是【caching_sha2_passwo......
  • 6.MongoDB系列之特殊索引和集合类型
    1.地理空间索引及全文搜索与Elasitcsearch一样,MongoDB同样支持地理空间索引及全文搜索,由于选型常用ES而非MongoDB此处略过2.TTL索引首先先了解下固定集合,其类似于循......
  • 1.MongoDB之服务启动
    1.编写docker-compose.yaml文件version:"3"services:mongo:image:mongo:4.2.6ports:-27017:27017volumes:-./data:/data/db:rw-......
  • 2.MongoDB系列之创建更新删除文档
    1.插入文档//单条插入db.getCollection('blog').insertOne({'type':'mongodb'})//批量插入db.getCollection('blog').insertMany([{'type':'elasticsearch'},{'......
  • 4.MongoDB系列之索引(一)
    1.执行计划查看db.getCollection('users').find({'username':'shenjian'}).explain('executionStats')结果查看,先大致看一遍,后续慢慢来深入理解{"queryPlanner"......
  • 3.MongoDB系列之查询
    1.find简介//查询所有文档db.users.find({})//查询指定条件文档db.users.find({'name':'shenjian'})//查询指定字段,1查询键0剔除键db.users.find({'name':'sh......
  • 5.MongoDB系列之索引(二)
    1.$运算符如何使用索引1.1低效的运算符$ne、$not查询可以使用索引,但不是很有效,尽量避免1.2范围查询范围查询其实是多值查询,根据复核索引规则,尽可能先等值精确匹配,然......