MongoDB 简单入门教程(安装、基本概念、创建用户)

工作方向上的原因,不得不接触部分MongoDB的运维工作,之前有接触过一些MongoDB的内容,基本的运维操作没有什么问题,包括MongoDB的集群搭建、数据分片功能等都测试过。但是时间久了,很多东西不用就忘记了,最近准备出一个系列的MongoDB的运维操作文章,希望把这块儿内容重新拾起来。网上查了查,MongDB讲得好的书也就是<MongoDB权威指南>这本了,但是它引用的MongoDB版本比较旧,所以最好结合着官方文档看,这样收获会更快。MongoDB中文论坛里面也有不少前人总结的好文档,对学习都很有帮助。废话不多说,开始讲述吧!

NO.1 Linux下MongoDB的安装

Linux下MongoDB的安装还算简单,总体可以分为如下几步:

1、去官网www.mongodb.org  上下载对应版本的二进制包,例如mongodb-linux-x86_64-rhel70-4.0.21-rc1.tgz

2、使用tar工具对这个包进行解压,通常解压的路径是/usr/local/

tar -zxvf mongodb-xxxx.tgz -C /usr/local

3、配置.bashrc中的环境变量,或者/etc/bashrc中的Path变量。添加下面的内容即可:

export MONGO_HOME="/usr/local/mongodb"

4、创建一个配置文件,放在目录/data/mongodb_${port}目录下,注意port为变量,它是你默认的端口(注意,MongoDB的默认端口是27017,一般不选用这个默认端口,我本人习惯将端口配置为27018,当然,你可以自己定义),配置文件mongo.conf内容如下:

dbpath=/data/mongo_27018/data

logpath=/data/mongo_27018/log/mongodb.log

auth=false

bind_ip=127.0.0.1

logappend=true

port=27018

fork=true

journal=false

5、启动MongoDB服务。

mongod --config /data/mongo_27018/mongo.conf

即可

6、使用mongo命令行连接MongoDB服务

[root@VM-0-14-centos ~]# mongo --port=27018
MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27018/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("749f350a-398b-4dcb-992c-f5f7b20e0426") }
MongoDB server version: 4.0.6
> show dbs
admin  0.000GB
config 0.000GB
local  0.000GB
test  0.000GB

NO.2 数据存储基本概念

MongoDB中的数据存储方式和MySQL不一样,因为MongoDB是专门针对分布式设计的数据库,因此它的存储方式相对比较灵活。

在MySQL中,我们关心的数据对象分别是数据库、表、记录;

在MongoDB中,它们对应成为数据库、集合、文档。

你可以类比的认为集合和表是一个概念,记录和文档是一个概念,当然,它们中间还有很多不同的地方。举个小例子:  在MySQL中,所有表中的记录,拥有相同的字段,在MongoDB中,同一个集合中的文档拥有的字段可以不同。下面是同一个collection(person)中,不同的表记录。

> use test
switched to db test

> show collections;
num
person

> db.person.find()
{ "_id" : ObjectId("5f96ac2f5e5c5ff982b9c6ae"), "name" : "yeyz", "age" : [ 26, 30 ], "info" : [ { "sex" : "male", "score" : 100 } ] }
{ "_id" : ObjectId("5f96e286dee7ee56f803605f"), "age" : 1 }

NO.3 用户创建

MongoDB中的账号一般设置成库级别的,我们创建账号的时候,需要指明这个账号是隶属于哪个库。我们上面的配置文件中配置了auth=false,说明登录的时候不需要验证用户权限,这样当然是不安全的。那么我们就需要为这个MongoDB实例创建一个我们想要的账号,创建账号的语句如下:

db.createUser(
... ...   {
... ...     user: "yeyz",
... ...     pwd: "123456", // 或者输入明文密码
... ...     roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
... ...   }
... ... )

这里,我创建了一个账号,名字叫yeyz,密码是123456,这个账号我们注意到还有一个roles的字段,它的内容意思是该账户是个管理账户,隶属于admin库下,它可以读写所有的database,这样我们在登录的时候,就可以使用这个账号进行登录。如下:

[root@VM-0-14-centos ~]# mongo --port=27018 -u "yeyz" -p 123456
MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27018/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("5cfebf40-2ede-4852-9c83-f85efbf13a4e") }
MongoDB server version: 4.0.6
> show dbs;
admin  0.000GB
config 0.000GB
local  0.000GB
test  0.000GB

以上内容,仅仅是MongoDB的一小部分,它的账号体系、数据存储体系以及增删改查方法,后面的文章我们会继续讲述,今天就先到这里。

以上就是MongoDB 简单入门教程(安装、基本概念、创建用户)的详细内容,更多关于MongoDB 入门教程的资料请关注我们其它相关文章!

(0)

相关推荐

  • MongoDB系列教程(四):设置用户访问权限

    我们知道mysql在安装的时候需要我们设置一个数据库默认的用户名和密码,mongodb也不例外,不过mongodb是默认的没有设置访问限制的,不需要输入用户名和密码都可以访问的,但是这样会十分的不安全,我们需要手动的为mongodb加上权限限制命令.   首先建立一个默认的账户   复制代码 代码如下: Use admin     Db.addUser('sa','sa') 这样我们建立了一个用户名为sa,密码为sa的默认账户.       在此时我们还是可以不输入用户名和密码进入数据库的,接下

  • MongoDB 用户相关操作

    在我们第一次启动MongoDB的时候,仅仅是制定了data数据目录和log日志目录,并没有指定--auth选项,也就是并不需要认证. [root@VM-0-14-centos mongo_27017]# mongo MongoDB shell version v4.0.6 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb Implicit session: session { "id" : UUID(

  • MongoDB在系统数据库local中无法创建用户的解决办法

    前言 我们知道,MongoDB的Oplog (operations log)记录了用户的最近一段时间的操作(时间长短主要受设置的oplogSize和程序的写入更新量的影响).那么,如果其他部门(例如BI团队)需要抽取数据,从 local.oplog.rs中读取解析一个不错的选择. oplog位于local数据下面,为了将权限最小化,大家需要创建此库的权限(还可以将权限细化到集合,再次不讨论). 习惯性的,在local数据库下面创建,但是报错了. 执行脚本 db.createUser( { use

  • MongoDB快速入门笔记(七)MongoDB的用户管理操作

    MongoDB 简介 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 1.修改启动MongoDB时要求用户验证 加参数 --auth 即可. 现在我们把MongoDB服务删除,再重新添加服务 复制代码 代码如下: mongod --dbpath "D:\work\MongoDB\data" --

  • mongodb基础之用户权限管理实例教程

    前言 本文主要介绍了mongodb用户权限管理的相关内容,关于接着上次实践的部分,下面话不多说了,来一起看看详细的介绍吧 启动mongodb并连接 ./bin/mongod -f conf/mongod.conf ./bin/mongo 127.0.0.1:12345 查看默认的数据库情况 > show dbs admin 0.000GB local 0.000GB > use admin switched to db admin > show tables system.version

  • MongoDB数据库用户角色和权限管理详解

    查看数据库 使用终端命令行输入 mongo 登陆 mongodb 之后切换到 admin 库,并认证后可查看所有数据库,操作如下所示: [root@renwole.com ~]# mongo MongoDB shell version v4.4.0 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id&

  • mongodb 添加用户及权限设置详解

    例如:mysql安装配置好后,有一个自带的mysql数据库,里面有一张user表,用来存放用户,以及用户权限,而mongodb这个最像关系型的数据库,有没有这样的表呢. 一,掌握权限,理解下面4条基本上就差不多 1,mongodb是没有默认管理员账号,所以要先添加管理员账号,在开启权限认证. 2,切换到admin数据库,添加的账号才是管理员账号. 3,用户只能在用户所在数据库登录,包括管理员账号. 4,管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以.这一

  • Mongodb 3.2.9开启用户权限认证问题的步骤详解

    前言 大家在Mongodb安装好后,一般不需要用户名密码就可以直接使用,开发者认为只要使用环境足够安全,可以不使用认证,但是在实际使用中为了数据的安全,大多人还是选择了开启权限认证. 一.在老版的Mongodb(大概3.0以前)可以这样开启认证: 1.Linux环境下mongo shell方式认证: >show dbs ##看到有如下数据 admin (empty) comment 0.203125GB dbtest (empty) foo 0.203125GB local (empty) te

  • MongoDB 用户管理

    小小最近接触了MongoDB,所以这里开始学习MongoDB,之用户管理模块的相关内容. 进入MongoDB的Shell 这里输入如下的命令,进入MongoDB的shell mongo 切换数据库 use admin 使用如上的命令,切换数据库到admin数据库. 创建超级管理员用户 创建超级管理员权限的用户 db.createUser( { user: "admin", customData:{description:"superuser"}, pwd: &quo

  • Mac下安装配置mongodb并创建用户的方法

    前言 mongodb数据库相信不用多介绍,大家都不陌生,好久之前曾经安装过mongodb,在一个偶然的情况下被一个大佬直接登陆进来了,刚开始惊呼还有这种操作,后来才发现自己并没有给数据库上锁,并且在安装完mongodb默认启动的时候默认是任何ip都可以不需要密码直接访问的. 好了,废话不多说,开始今天的正文 安装mongodb 安装mongodb有三种方式: 1.直接下载安装 MongoDB 提供了 OSX 平台上 64 位的安装包,你可以在官网下载安装包. 下载地址:[https://www.

  • Windows下MongoDB配置用户权限实例

    MongoDB默认设置为无权限访问限制注:研究成果基于Windows平台 在部署mongodb成功后,进入控制台: \ 输入命令:mongod use admin,你会发现该DB下包含了一个system.user表,呵呵,没错,这个表就等同于MsSql中的用户表,用来存放超级管理员的,那我们就往它里面添加一个超级管理员试试看里我添加一个超级管理员用户,username为admin,password也为admin,即然我们添加了超级管理员,那咱们就来测试下,看看咱们再次连接MongoDB需不需要提

  • MongoDB为用户设置访问权限

    MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),今天特地花了一点时间研究了一下,研究成果如下: 注:研究成果基于Windows平台 MongoDB在本机安装部署好后 1. 输入命令:show dbs,你会发现它内置有两个数据库,一个名为admin,一个名为local.local好像没啥用,如果哪位在使用过程中发现了这个local表的用途,希望能够留言提醒,那我们就专心来说说admin表 2. 输入命令:use

随机推荐