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
相关文章
|
11天前
|
弹性计算 开发框架 安全
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
|
22天前
|
机器学习/深度学习 并行计算 异构计算
WINDOWS安装eiseg遇到的问题和解决方法
通过本文的详细步骤和问题解决方法,希望能帮助你顺利在 Windows 系统上安装和运行 EISeg。
44 2
|
1月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
59 4
|
1月前
|
Dart 搜索推荐 IDE
Windows下Zed编辑器配置Dart环境
本文介绍了Dart编程语言及其主要框架Flutter的优势,并推荐使用轻量级编辑器Zed进行Dart开发。详细步骤包括Dart环境的安装与配置,Zed编辑器的安装与个性化设置,以及如何在Zed中编写并运行Dart的HelloWorld程序。通过自定义任务实现Dart文件的快速运行,提高了开发效率。
|
2月前
|
数据安全/隐私保护 Windows
安装 Windows Server 2019
安装 Windows Server 2019
|
2月前
|
Windows
安装 Windows Server 2003
安装 Windows Server 2003
|
2月前
|
NoSQL Shell MongoDB
Windows 平台安装 MongoDB
10月更文挑战第10天
66 0
Windows 平台安装 MongoDB
|
2月前
|
Windows Python
Windows安装dlib,遇到问题汇总解决
Windows安装dlib,遇到问题汇总解决
94 4
|
2月前
|
Oracle 关系型数据库 MySQL
Mysql(1)—简介及Windows环境下载安装
MySQL 是一个流行的关系型数据库管理系统(RDBMS),基于 SQL 进行操作。它由瑞典 MySQL AB 公司开发,后被 Sun Microsystems 收购,现为 Oracle 产品。MySQL 是最广泛使用的开源数据库之一,适用于 Web 应用程序、数据仓库和企业应用。
64 2