封尘网

让学习成为一种习惯!

mongodb数据库配置与用户角色创建

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

MongoDB也是全球成长最快的 NoSQL 数据库。正因如此,很多公司都在使用,因为最近都在学习Python 、Flask,很多个demo都是基于MongoDB的,所在基础的准备还是必须的。

本次仅记录mongodb数据库安装配置与用户角色创建

如果是Ubuntu可以直接运行:

sudo apt-get install mongodb

如果是Centos可以直接运行,但不是最新的,如果要最新的需要配置官方源:

yum install mongodb-server mongodb-client -y

如果是Windows系统需要下载安装包,直接下一步操作:

mongodb官网下载安装:

https://www.mongodb.com/download-center?jmp=nav#community

安装完成后需要配置成系统服务:

在D盘下创建一个目录:D:\MongoDB\ 同时有logs和db两个目录

创建一个D:\MongoDB\mongod.conf文件内容如下:

######################################## 
systemLog: 
 destination: file 
###日志存储位置 
 path: D:\MongoDB\logs\mongod.log 
 logAppend: true 
storage: 
##journal配置 
 journal: 
  enabled: true 
##数据文件存储位置 
 dbPath: D:\MongoDB\data\db 
##是否一个库一个文件夹 
 directoryPerDB: true 
##数据引擎 
 engine: wiredTiger 
##WT引擎配置 
 wiredTiger: 
  engineConfig: 
##WT最大使用cache(根据服务器实际情况调节) 
   cacheSizeGB: 1 
##是否将索引也按数据库名单独存储 
   directoryForIndexes: true 
##表压缩配置 
  collectionConfig: 
   blockCompressor: zlib 
##索引配置 
  indexConfig: 
   prefixCompression: true 
##端口配置 
net: 
 port: 27017 
########################################

因为我安装的目录是D盘下的。

启动一个CMD命令窗口,需要以管理员身份运行:

D:\MongoDB\Server\3.4\bin\mongod.exe --config "D:\MongoDB\Server\3.4\mongod.conf" --install --serviceName "MongoDB"

完成后就可以在控制面板—-管理工具—-服务 里看到一个名为MongoDB的服务了,自己可以选择开机启动或者手动;

如果启动有异常可以查看配置文件中定义的日志文件,当服务启动成功后就可以通过客户端连接了。

然后直接在CMD命令行打mongo进入数据库shell操作

Microsoft Windows [版本 6.1.7601] 
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。 

C:\Users\Administrator>mongo 
MongoDB shell version v3.4.7 
connecting to: mongodb://127.0.0.1:27017 
MongoDB server version: 3.4.7 
Server has startup warnings: 
2017-09-21T09:51:49.573+0800 I CONTROL  [initandlisten] 
2017-09-21T09:51:49.573+0800 I CONTROL  [initandlisten] ** WARNING: Access contr 
ol is not enabled for the database. 
2017-09-21T09:51:49.573+0800 I CONTROL  [initandlisten] **          Read and wri 
te access to data and configuration is unrestricted. 
2017-09-21T09:51:49.573+0800 I CONTROL  [initandlisten] 
2017-09-21T09:51:49.573+0800 I CONTROL  [initandlisten] Hotfix KB2731284 or late 
r update is not installed, will zero-out data files. 
2017-09-21T09:51:49.573+0800 I CONTROL  [initandlisten] 
>

创建一个数据库叫 blog,并添加一个数据库账号,如下:

use <数据库名> :进入一个数据库。 如果没有该数据库,你进入后创建collection,mongo就会创建一个新的数据库。

如果不添加数据直接退出时数据库blog是不会存在的。

db.createCollection(<文档名>): 创建一个collection,相当于mysql里面的table

下面我们创建一个数据库,并创建两个后面需要用到的collection。

> use blog
switched to db blog
> db.createCollection("role")
{ "ok" : 1 }
> db.createCollection("user")
{ "ok" : 1 }

role:用于保存用户角色
user:用于保存用户基本信息,包括邮箱,密码等

给数据库blog创建一个数据库具有读写权限的账号:

> use blog 
> db.createUser( 
     { 
       user: "test", 
        pwd: "123456", 
        roles: [ { role: "readWrite", db: "blog" } ] 
    } 
    )

当看到下面的信息就表示成功加入数据了。

Successfully added user: { 
    "user" : "test", 
    "roles" : [ 
        { 
            "role" : "readWrite", 
            "db" : "blog" 
        } 
    ] 
}

好了,数据库都搞定了

也可以使用一些图形化的工具参考一下数据的结构:mongobooster、Mongo VUE

http://s3.mongobooster.com/download/3.5/mongobooster-3.5.7.exe

效果: