热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MongoDB数据库安装和配置

欢迎关注我的微信公众号“人小路远”哦,在这里我将会记录自己日常学习的点滴收获与大家分享,以后也可能会定期记录一下自己在外读博的所见所闻,希

欢迎关注我的微信公众号“人小路远”哦,在这里我将会记录自己日常学习的点滴收获与大家分享,以后也可能会定期记录一下自己在外读博的所见所闻,希望大家喜欢,感谢支持! 



自己在家捣鼓数据库玩的时候发现MongoDB使用起来还是有很多需要注意和值得学习的地方的,怕自己鼓捣两天就玩忘了,所以写下这篇文章备忘并和大家共享。

目录

1、MongoDB安装

1.1、下载安装包

1.2、安装

1.3、进入安装目录

1.4、启动MongoDB

2、添加用户权限和身份验证

2.1、创建管理员

2.1.1、创建用户名和密码

2.1.2、开启身份验证

 2.1.3、用户身份验证

2.2、 创建普通用户

2.3、 内建角色

3、常用命令

4、连接远程MongoDB数据库

4.1、配置远程数据库

4.2、连接远程数据库

5、连接数据库




1、MongoDB安装


1.1、下载安装包

点击官网community版下载地址,选择系统和版本号后下载ZIP或MSI版本均可。此处以MSI版本为例:


1.2、安装

需要注意两个地方,选择Custom版本,取消compass复选框以节约时间。

  

 如果是安装在了默认的C盘,那就记得在C盘的根目录下新建data文件夹,然后再data文件夹下再新建一个db文件夹以存储数据库数据。如果是D盘那就在D盘的根目录下新建。


1.3、进入安装目录

解压或者安装完成后,需找到安装目录,在bin文件夹下打开命令行窗口。因为MongoDB不会默认将工具添加至系统变量,所以为以后方便使用建议自行将常用的mongo.exe和mongod.exe添加至系统变量。


1.4、启动MongoDB

在任务管理器中启动MongoDB服务即可,一般会自动启动。默认端口为27017。

在bin目录下打开命令行窗口,输入mongo进入MongoDB shell,即可进入数据库。


2、添加用户权限和身份验证

为提高数据库的安全性,防止被恶意篡改数据或操作失误导致数据丢失,建议添加用户权限和身份认证。

参考文章:


  • MongoDB 设置用户名密码登录
  • 设置远程连接访问mongodb数据库
  • MongoDB authentication failed

2.1、创建管理员


2.1.1、创建用户名和密码

在bin目录下另外打开一个命令行窗口,输入mongo进入MongoDB shell,然后使用MongoDB shell进入默认的admin数据库。

use admin

输入以下命令,添加root超级管理员。设置管理员root为用户名,rootPass为密码,admin为数据库名,

db.createUser({user: "root",pwd: "rootPass",roles: [ { role: "root", db: "admin" } ]}
)

注意一定要先在默认的admin数据库中添加root用户。如果admin库没有任何用户的话,即使在其他数据库中创建了用户,启用身份验证,默认的连接方式依然会有超级权限。如果admin数据库中未添加root用户,其他用户身份验证连接可能会失败。

创建成功后按下Ctrl+C键以断开数据库连接。


2.1.2、开启身份验证

(1)在注册表regedit-> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services->MongoDB 中添加-auth

(2)任务管理器中重启MongoDB服务即可。


 2.1.3、用户身份验证

方法一:连接时直接指定用户名、密码和数据库名。

mongo -u "adminUser" -p "adminPass" "DATABASE_NAME"

方法二:先连接数据库,再验证身份。

mongouse admindb.auth("adminUser", "adminPass")
// 输出 1 表示验证成功

2.2、 创建普通用户

过程类似创建管理员账户,只是 role 有所不同。先在admin数据库中使用root账户登录,之后按需创建即可,例如:


  • 用户名:simpleUser
  • 密码:simplePass
  • 权限:读写数据库 foo, 只读数据库 bar

db.createUser({user: "simpleUser",pwd: "simplePass",roles: [ { role: "readWrite", db: "foo" },{ role: "read", db: "bar" } ]}
)

2.3、 内建角色


  • Read:允许用户读取指定数据库
  • readWrite:允许用户读写指定数据库
  • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
  • userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
  • clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
  • readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
  • readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
  • userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
  • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
  • root:只在admin数据库中可用。超级账号,超级权限

3、常用命令

显示当前数据库

db

显示所有数据库(新建的数据库需要至少插入一条数据才可显示)

show dbs

新建或切换至数据库xxx

use DATABASE_NAME

当前数据库下新建表xxx

db.createCollection("TABLE_NAME")

显示当前数据库下的所有表

show collections

当前数据库下指定表里插入一行数据

db.TABLE_NAME.insertOne({name:'xxx'}) //字段名name 数据xxx

当前数据库下指定表里查找数据

db.TABLE_NAME.find()

删除当前数据库

db.dropDatabase()

删除指定表

db.TABLE_NAME.drop()

4、连接远程MongoDB数据库

如果无需连接远程数据库,则可直接跳至第5步。


4.1、配置远程数据库

当我们想要连接服务器上的MongoDB数据库时,需要先对其进行配置。

(1)找到远程数据库的安装目录后,用记事本打开bin文件夹下的mongod.cfg文件,将bindIp后面的"127.0.0.1"改为"0.0.0.0"。然后任务管理器中重启MongoDB服务即可。

(2)一定要记得打开服务器防火墙的27017端口,如果是云服务器,一般不用在系统内打开端口,只要在服务器控制台添加安全规则打开端口就可以了。


4.2、连接远程数据库

建议先使用Telnet工具测试一下远程服务器是否可以正常连接。用法详见百度经验 telnet用法 测试端口号

telnet your.machine.open.ip 27017

在本机MongoDB安装目录的bin文件下,使用命令行进行连接。

建议先连接再认证,直接输入用户名和密码以及数据库进行连接有时会认证失败,不清楚是什么原因。

.\mongo your.db.ip.addressuse DATABASE_NAMEdb.auth("username","password")

5、连接数据库

使用MongoDB shell 连接数据库或者在代码中使用以下URI 形式对数据库进行连接。

mongodb://your.db.ip.address:27017/DATABASE_NAME

添加用户名密码验证

mongodb://simpleUser:simplePass@your.db.ip.address:27017/DATABASE_NAME

推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • step1.为mongodb添加admin管理员root@12.154.29.163:~#mongoMongoDBshellversionv3.4.2connectingto:mo ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • MongoDB用户验证auth的权限设置及角色说明
    本文介绍了MongoDB用户验证auth的权限设置,包括readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase、cluster相关的权限以及root权限等角色的说明和使用方法。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
author-avatar
qiuyaji4379
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有