我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MongoDB 安装

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MongoDB 安装

MongoDB 安装

1.  yum方式安装

1、添加一个yum源

创建一个 /etc/yum.repos.d/mongodb-org-5.0.repo 文件

[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc

2、安装MongoDB包

sudo yum install -y mongodb-org

默认配置文件:/etc/mongod.conf

默认数据文件目录:/var/lib/mongo

默认日志文件目录:/var/log/mongodb

3、可以自定义配置文件,更改某些设置

比如,指定新的数据存储目录(例如:/some/data/directory)或者 指定新的日志文件路径(例如:/some/log/directory/mongod.log)

最后,一定要确保运行MongoDB的用户有权限访问这些目录。假设我们新创建了一个用户叫zhangsan,我们打算用zhangsan这个用户来运行MongoDB,那么必须确保zhangsan可以访问/some/data/directory和/some/log/directory/mongod.log

于是,可以这样操作

sudo chown -R zhangsan:zhangsan 
mongod --config /etc/mongod.conf

PS:如果更改运行 MongoDB 进程的用户,则必须授予新用户访问这些目录的权限。

4、启动MongoDB

sudo systemctl start mongod

5、查看MongoDB运行状态

sudo systemctl status mongod

6、停止MongoDB

sudo systemctl stop mongod

7、重启MongoDB

sudo systemctl restart mongod

8、使用MongoDB 

mongosh

在与 mongod 相同的主机上启动 mongosh 会话。可以在不带任何参数的情况下运行 mongosh,这样的话就会连接本地 localhost 上运行的 mongod,默认端口为 27017。

9、help

10、卸载MongoDB

# 停止服务
sudo systemctl stop mongod
# 删除安装包
sudo yum erase $(rpm -qa | grep mongodb-org)
# 删除数据库和日志文件
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo

11、快速开始

MongoDB 将文档存储在集合中。 集合类似于关系数据库中的表。 如果集合不存在,MongoDB 会在首次存储该集合的数据时创建该集合。

12、包名称和描述

  • mongodb-org-database : 是一个metapackage,会自动安装下列组件包
  1. mongodb-org-server : 包含 mongod 守护进程、相关的初始化脚本和配置文件 (/etc/mongod.conf)
  2. mongodb-org-mongos : 包含 mongos 守护进程
  3. mongodb-org-shell : 包含历史遗留的 mongo shell
  • mongodb-mongosh : 包含 MongoDB Shell (mongosh)
  • mongodb-org-tools : 是一个metapackage,会自动安装以下组件包
  1. mongodb-database-tools : 包含下列MongoDB数据库工具(mongodump 、mongorestore 、bsondump 、mongoimport 、mongoexport 、mongostat 、mongotop 、mongofiles)
  2. mongodb-org-database-tools-extra : 包含install_compass脚本

13、关闭防火墙

systemctl stop|start|status firewalld

2.  docker方式安装

下载镜像

docker pull mongo

指定版本运行容器

1、启动一个 mongo server 实例

docker run --name some-mongo -d mongo:tag

2、从另一个 Docker 容器连接到 MongoDB

以下示例启动另一个 MongoDB 容器实例,并针对上面示例中的原始 MongoDB 容器运行 mongo 命令行客户端,从而允许您对数据库实例执行 MongoDB 语句:

docker run -it --network some-network --rm mongo mongo --host some-mongo test

 (PS:这里解释一下,这就相当于是在B容器中远程连接到A容器,相当于是本地mongo客户端连接到远程mongo服务器。由于现在mongo是运行在docker容器里的,所以我们可以把运行mongo server的容器理解成一台机器A,为了能够在另外一台机器B中连接到A,需要B上至少安装了mongo shell,这就是mongo client 连接到远程 mongo server)

3、容器shell访问并查看MongoDB日志

docker exec 命令允许你在 Docker 容器内运行命令。 以下命令行将为你提供 mongo 容器内的 bash shell: 

docker exec -it some-mongo bash

MongoDB 服务器日志可通过 Docker 的容器日志获得:

docker logs some-mongo

4、帮助

查看帮助,可以知道mongo容器运行时可以带哪些参数

docker run -it --rm mongo --help

5、设置WiredTiger缓存大小限制

docker run --name some-mongo -d mongo --wiredTigerCacheSizeGB 1.5

6、用一个自定义的MongoDB配置文件

mongod 默认不读取配置文件,所以需要通过 --config 选项来指定配置文件的路径。 通过从 mongo 创建自定义 Dockerfile 或将其从主机挂载到容器来创建自定义配置文件并将其放入容器中。 

例如,假设/my/custom/mongod.conf是自定义的配置文件,那么在启动MongoDB容器的时候可以这样:

docker run --name some-mongo -v /my/custom:/etc/mongo -d mongo --config /etc/mongo/mongod.conf

默认的配置文件(/etc/mongod.conf)如下:

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# Where and how to store data.
storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true
#  engine:
#  wiredTiger:

# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.


#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options

#auditLog:

#snmp:

7、环境变量

启动 mongo 镜像时,可以通过在 docker run 命令行中传递一个或多个环境变量来调整 MongoDB 实例的初始化。

MONGO_INITDB_ROOT_USERNAME, MONGO_INITDB_ROOT_PASSWORD 这两个变量一起使用,创建一个新用户并设置该用户的密码。 该用户是在管理员(admin)身份验证数据库中创建的,并被赋予 root 角色,这是一个“superuser(超级用户)”角色。 

下面是一个例子,使用这两个变量创建一个MongoDB实例,然后使用 mongo cli 连接到admin身份认证数据库。

首先,启动容器,创建MongoDB实例 

docker run -d --network some-network --name some-mongo 
    -e MONGO_INITDB_ROOT_USERNAME=mongoadmin 
    -e MONGO_INITDB_ROOT_PASSWORD=secret 
    mongo

连接到前面创建的mongo server实例容器

docker run -it --rm --network some-network mongo 
    mongo --host some-mongo 
        -u mongoadmin 
        -p secret 
        --authenticationDatabase admin 
        some-db

(PS:命令行中的mongo是镜像的名字,而 mongod 是 MongoDB 系统的主要守护进程)

要创建用户,这两个变量都是必需的。 如果二者都存在,那么 MongoDB 将启用身份验证(mongod --auth)

MongoDB 中的身份验证相当复杂,因此更复杂的用户设置通过 /docker-entrypoint-initdb.d/ 显式留给用户自己设置

MONGO_INITDB_DATABASE 这个变量允许您指定用于/docker-entrypoint-initdb.d/*.js中创建脚本的数据库名称

MongoDB 设计的最基本的原则是:"create on first use" (第一次使用时创建)

作为通过环境变量传递敏感信息的替代方法,_FILE 可以附加到先前列出的环境变量中,从而导致初始化脚本从容器中存在的文件中加载这些变量的值。特别是,这可用于从存储在 /run/secrets/ 文件中的 Docker 密钥存储中加载密码。当前,只支持MONGO_INITDB_ROOT_USERNAME 和 MONGO_INITDB_ROOT_PASSWORD 。

docker run --name some-mongo -e MONGO_INITDB_ROOT_PASSWORD_FILE=/run/secrets/mongo-root -d mongo

8、认证

MongoDB 中的身份验证相当复杂,参见:

mongod --auth

Security > Authentication 

Security > Role-Based Access Control 

Security > Role-Based Access Control > Built-In Roles 

Security > Enable Auth (tutorial) 

9、数据存储在哪里 

有两种方法可以存储在 Docker 容器中运行的应用程序使用的数据。

方式一:让Docker使用自己的内部卷管理将数据库文件写入主机系统上的磁盘,从而管理数据库数据的存储。这是默认设置,对用户来说非常简单且相当透明。缺点是,对于直接运行在主机系统上的工具和应用程序(即外部容器)来说,可能很难找到这些文件。

方式二:在宿主机系统(容器外部)上创建一个数据目录,并将其挂载到容器内部可见的目录。这会将数据库文件放置在主机系统上的已知位置,并使主机系统上的工具和应用程序可以轻松访问这些文件。 缺点是,用户需要确保目录存在,例如,主机系统上的目录权限和其他安全机制是正确设置的。

(PS:总结一下,两种方式,一种是放到容器内部,另一种是放到容器外部)

由docker自己管理这种默认行为就不在这里演示了,下面演示一下将容器外部的目录挂载到容器这种方式:

首先,在宿主机上创建一个目录,比如叫 /my/own/datadir

然后,在启动容器的时候使用 -v 选项挂载目录

docker run --name some-mongo -v /my/own/datadir:/data/db -d mongo

这个命令中,-v /my/own/datadir:/data/db 将主机系统上的/my/own/datadir目录挂载到容器的/data/db。docker容器安装mongodb时,默认情况下MongoDB会将它的数据存放在/data/db目录中。

备忘录

docker network create my-network
docker network ls
docker run -d --network my-network --name my-mongo mongo
docker run -it --rm --network my-network mongo mongo --host my-mongo test
docker exec -it my-mongo bash

10、创建数据库转储(dump)

docker exec some-mongo sh -c "exec mongodump -d  --archive" > /some/path/on/your/host/all-collections.archive

11、备忘录

docker run --network some-network --name some-mongo -v /my/custom:/etc/mongo -p 27017:27017 -d mongo --config /etc/mongo/mongod.conf

docker run --name some-mongo -p 27017:27017 -d mongo --auth
docker exec -it some-mongo mongo admin

> db.createUser({user:"root",pwd:"123456",roles:["root"]})


docker run -d --name some-mongo 
    -e MONGO_INITDB_ROOT_USERNAME=admin 
    -e MONGO_INITDB_ROOT_PASSWORD=123456 
    mongo


docker exec -it some-mongo mongo

 

 

文档:

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

https://registry.hub.docker.com/_/mongo 

https://docs.docker.com/engine/reference/commandline/network/ 

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MongoDB 安装

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

安装mongoDB

选择自定义安装 选择安装路径,需要建个文件夹,因为安装文件有好几个散着的 必须取消这个√,安装了一夜都没装好,卡住了 切换到安装bin目录下:mongod --dbpath G:mongodbmondodbdatadb   在浏
安装mongoDB
2018-07-24

MongoDB 安装

1.  yum方式安装1、添加一个yum源创建一个 /etc/yum.repos.d/mongodb-org-5.0.repo 文件[mongodb-org-5.0]name=MongoDB Repositorybaseurl=https://repo.mon
MongoDB 安装
2021-05-18
2024-04-02

Ubuntu 安装MongoDB

Ubuntu16.04安装MongoDB指南系统初始化$ sudo apt update$ sudo apt dist-upgrade$ sudo apt autoremove$ sudo apt clean安装mongodbsudo apt-get inst
Ubuntu 安装MongoDB
2021-07-25

mongodb nodejs安装

MongoDB 和 Node.js 都是非常流行的开发工具,它们都具有非常好的性能,安装也非常简单。在本文中,我们将介绍 MongoDB 和 Node.js 的安装过程,并为您提供详细的步骤。1. 安装 MongoDBMongoDB 是一款开源的、跨平台的、分布式 NoSQL 数据库。MongoDB 在大数据处理方面表现非常突出,能够为开发者提供非常高效的数据存储和查询方案。下
2023-05-14

python安装mongodb

#!/usr/bin/env python#coding:utf-8import osimport tarfileimport shutilmongo_package = 'mongodb-linux-x86_64-rhel70-3.2.8
2023-01-31

CentOS6.5 安装 MongoDB

1、下载MongoDB http://www.mongodb.org/downloads mongodb-linux-x86_64-3.6.3.tgz  #目前最新版是4.0.0   2、建议关闭selinux [root@mycentos ~]# vi /e
CentOS6.5 安装 MongoDB
2018-08-28

linux MongoDB安装

这里是CentOS系统: 使用yum的方式安装也很简单 ,也不需要下载安装包,官网默认是安装最新的版本: 1.首先创建文件 /etc/yum.repos.d/mongodb-org-4.2.repo  并填写如下内容 [mongodb-org-4.2]name
linux MongoDB安装
2018-10-08

centos7下安装mongodb

centos7下安装mongodb chenlongjs 2020-03-03 20:14:47 746 收藏 2 分类专栏: 个人问题总结 服役器配置 版权 mongodb介绍 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中
centos7下安装mongodb
2018-07-29

MongoDB安装调试

1:安装去mongodb的官网http://www.mongodb.org/downloads下载32bit的包 解压后会出现以下文件 在安装的盘C:下建立mongodb文件夹,拷贝bin文件夹到该目录下,这样就相当于安装了mongodb的相关命令。 为了启动
2017-04-08

编程热搜

目录