Windows 环境下安装 MongoDB

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: Windows 环境下安装 MongoDB

MongoDB 系列文章

1 环境准备


  • 操作系统:Windows 10
  • 安装包:mongodb-win32-x86_64-2012plus-4.2.14.zip

2 安装包下载


官网下载地址:https://www.mongodb.com/try/download/community

在这里插入图片描述

3 安装启动


安装包有2种类型,一种是 zip 类型,一种是 msi 类型。其实两种都是一样的,前者是直接解压即可,后者是需要一步一步安装。推荐使用 zip 类型的安装包。

3.1 配置

在安装目录下创建 data 文件夹,并在 data 文件夹下再创建 db 文件夹和 log文件夹。db 文件夹用于存储数据库数据,log 文件夹用于存储数据库日志。

在这里插入图片描述

将 Mongo 安装目录的 bin 路径添加到环境变量 path 中。这样以后执行一些 mongo 相关的命令可以不用进入到安装路径的 bin 目录。

3.2 启动

有两种启动方式,命令行的方式启动和服务的方式启动。

3.2.1 命令行方式启动

可以通过 cmd 打开命令窗口,手动输入启动命令。当然,也可以创建一个启动脚本文件(例如 startMongo.bat),内容为启动命令,这样每次只需要双击脚本文件即可启动 mongo 服务。

# --dbpath指定了数据存储的位置
mongod --dbpath E:\chDevTools\MongoDB\Server\3.2\data\db

在这里插入图片描述

# 指定数据存储的位置和日志存储的位置
mongod --dbpath E:\chDevTools\MongoDB\Server\3.2\data\db --logpath E:\chDevTools\MongoDB\Server\3.2\data\log\mongo.log

在浏览器输入 127.0.0.1:27017 进行验证,出现如下提示则代表启动成功。

在这里插入图片描述

或者在命令行执行 mongo 命令,进行验证。

在这里插入图片描述

3.2.2 服务的方式启动

在 Mongo 安装的目录下创建文件 mongod.config ,指定数据存储的位置,和日志存储的位置,文件内容如下:
在这里插入图片描述

在这里插入图片描述

在命令行窗口输入以下命令,使用--install 选项将 MongoDB 添加为 Windows 的服务。

mongod --config “E:\chDevTools\MongoDB\Server\3.2\mongod.config” --install -serviceName "MongoDB"

按住 Win 键和 R 键,输入services.msc,打开 Windows 服务列表,可以看到 MongoDB 服务已经添加成功,但是此时 MongoDB 服务还未启动(当然也可以在此右键手动启动和停止)。

在这里插入图片描述

在这里插入图片描述

在命令行输入 net start MongoDB 启动服务。启动后在服务列表可以看到启动状态。

在这里插入图片描述

在这里插入图片描述

顺带介绍下停止服务 net stop MongoDB 和删除服务 sc delete MongoDB 的命令。

在这里插入图片描述

在这里插入图片描述

5 用户角色和密码


启动 MongoDB 服务默认是没有账号密码的,即连接上即可进行各种操作。我们可以使用 --auth 参数开启认证,这样连接需要认证之后才能执行操作。默认情况下,MongoDB 是没有管理员账户的,所以我们需要在 admin 数据库中使用 db.createUser() 命令添加管理员帐号或其他角色。

5.1 内置角色

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

5.2 创建管理员账号

切换到 admin 数据库,使用以下命令创建管理账号,拥有操作所有数据库权限。

> use admin
switched to db admin
> db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
Successfully added user: {
        "user" : "admin",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}
> 

5.3 用认证方式启动服务

停止服务(net stop 服务名),将之前的服务删除(sc delete 服务名),原有的 data\db 目录下的数据库数据可以不用删除。然后再添加 --auth 参数重新添加服务,最后重新启动服务。

mongod --config “E:\chDevTools\MongoDB\Server\3.2\mongod.config” --auth --install -serviceName "MongoDB"

在这里插入图片描述

5.4 验证

使用 mongo 命令连接上之后,如果不进行 db.auth("用户名","密码") 进行用户验证的话,是执行不了任务命令的,只有通过认证才可以。注意,每一个用户都需要在创建这个用户的认证库下进行认证。

> use adminuse admin
switched to db admin
> db.auth("admin","123456")
1
> show tablesshow tables
system.users
system.version
> 

5.5 演示对单个数据库创建用户和密码

平常开发中,一般新项目会创建新的数据库,而且创建一个新的数据库用户仅对此数据库进行读写。

以下演示创建 chenpi 用户,密码为123456,并设置对 nobody 数据库读写的权限。注意,创建新用户前,先使用 admin 用户登录,因为我们刚才为 admin 用户设置了 userAdminAnyDatabase 权限。

# 先使用有创建用户权限的用户登录
> use admin
switched to db admin
> db.auth("admin","123456")
1
# 新用户的认证库
> use nobody
switched to db nobody
# 创建chenpi用户,密码123465,对nobody数据库有读写权限
> db.createUser({user:'chenpi',pwd:'123456',roles:[{role:'readWrite',db:'nobody'}]})
Successfully added user: {
        "user" : "chenpi",
        "roles" : [
                {
                        "role" : "readWrite",
                        "db" : "nobody"
                }
        ]
}
> 

5.6 可视化工具连接

我们使用 MongoDB 可视化工具(例如 Studio 3T For MongoDB)连接数据库。使用不同用户名和密码进行登录的时候,其可操作的数据库范围是不同的(角色设置原因)。

注意,当连接的数据库启动没有设置用户认证时,连接时不需要填写用户名和密码。

在这里插入图片描述

在这里插入图片描述

我们使用 chenpi 用户登录,因为我们设置它的角色是只对 nobody 数据库有读写权限,所以连接后只能看到 nobody 数据库。

在这里插入图片描述

当然,如果我们使用 admin 用户登录,注意,admin 用户当时是在 admin 数据库创建的,所以它的认证库是在 admin。

在这里插入图片描述

你会发现 admin 用户可操作的数据库范围和 chenpi 用户是不一样的。

在这里插入图片描述

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
23天前
|
存储 Cloud Native Java
Windows下Minio的安装以及基本使用
MinIO 是一个开源的云原生分布式对象存储系统,兼容亚马逊S3接口,适合存储大容量非结构化数据。本文介绍Windows下MinIO的安装与基本使用:通过以上步骤,您可以在Windows环境中成功安装并使用MinIO。
101 17
|
2月前
|
关系型数据库 MySQL 数据库
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
|
2月前
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
176 9
|
2月前
|
机器学习/深度学习 并行计算 异构计算
WINDOWS安装eiseg遇到的问题和解决方法
通过本文的详细步骤和问题解决方法,希望能帮助你顺利在 Windows 系统上安装和运行 EISeg。
114 2
|
3月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
181 4
|
3月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
110 4
|
4月前
|
NoSQL Ubuntu Linux
Linux平台安装MongoDB
10月更文挑战第11天
111 5
|
4月前
|
NoSQL Shell MongoDB
Mac OSX 平台安装 MongoDB
10月更文挑战第11天
41 4
|
4月前
|
数据安全/隐私保护 Windows
安装 Windows Server 2019
安装 Windows Server 2019
108 1
|
4月前
|
Windows
安装 Windows Server 2003
安装 Windows Server 2003