zoukankan      html  css  js  c++  java
  • MongoDB配置、设置密码与可视化管理工具

    现在感觉随着技术的日新月异,数据库技术从原先的 Mysql、Oracle 等 RBMS ,到现在各种的 NoDB,特别是在 gitHub 上找开源项目时,会发现很多开源项目都已经应用了 NoDB,今天来介绍一下 NoDB 之一的 MongoDB 的安装与配置以及图形界面的管理工具。

    主要内容:

    · 配置

    · 可视化管理工具:NoSQLBooster

     · 添加 auth 认证(设置密码)

    . URI  连接语法

    1、下载

    地址:https://www.mongodb.com/download-center/community

    (我用的 win10 系统,以下教程使用于 windows 平台)建议下载 zip 文件,无需安装,解压缩后就可以用。下载可能会有点慢,用 VPN ( 蓝灯等 )可以提速很多。

    2、配置

    2.1 创建数据目录

    MongoDB 将数据目录存储在 datadb 目录下。但是这个数据目录不会主动创建,需要我们手动创建,很简单。

    不过需要注意,数据目录应该放在根目录下(如: C:  或者 D:  等 )。我把目录放在E:根目录下,先在 E: 创建一个 data  的目录然后在 data 目录里创建 db 目录。

    2.2 创建配置文件

    配置文件需要我们手动创建,用于设置数据目录、日志目录,以及认证登陆设置等。这一点感觉还是 Mysql 简单一些,毕竟 Mysql 自带配置文件,只需要我们修改即可,不过,也很简单,在 in 文件夹下新建文件:mongod.cfg,内容:

    systemLog:
        destination: file
        path: e:datalogmongod.log
    storage:
        dbPath: e:datadb          //与上一步对应

    2.3 运行 MongoDB 服务器

    和 Mysql 一样,需要先把数据库服务器运行起来,实际就是运行一个 .exe 执行文件。

    我的 mongodb 安装在了 E:Program Filesmongodb 下,在 E:Program Filesmongodbin 里的 mongod.exe 就是我们要找的数据库启动程序,用命令行运行:

    E:Program Filesmongodbinmongod --dbpath e:datadb          //dbpath为我们刚才创建的data,初次启动,必须添加该参数

    运行成功之后,我们再看看之前创建的 E:datadb 数据目录,之前是空的,现在里面已经有了文件,截图如下:

     

    2.4 连接MongoDB

    和 Mysql、Oracle 一样,MongoDB 也自带的数据库管理软件。位于:bin 目录下的  mongo.exe 执行文件,也就是 MongoDB Shell 。

    如果你嫌每一次用到 MongoDB 都需要手动启动服务,可以将 mongod.exe 写进 Windows 服务,这样,只要你的电脑一开机,MongoDB 服务就会自动启动。

    具体实现参考:https://www.runoob.com/mongodb/mongodb-window-install.html   其中的安装 MongoDB 服务部分。

    3、可视化管理工具

    MongoDB 的可视化管理工具很多,我用的是 NoSQLBooster。

    用 MongoDB Shell 查看当前默认的数据库信息:

    我们可以看到以上三个默认数据库,同样我们用 NoSQLBooster 连接 MongoDB,由于其默认是没有账号密码的,因此连接管理配置如下:

    27017 为默认端口号,连接名称任意即可。

    点击 Connect 看到:

    同样显示出了三个默认数据库,OK,到这里可视化工具连接完毕。

    4、为数据库添加账号密码

    我们在做项目时,当然不喜欢我们的数据库连接没有账号密码,这样安全性得不到保障,而 MongoDB 安装以后默认是不需要账号密码的,因此设置账号密码需要做一点小配置。

    4.1 管理员账号

    类似于 Mysql 的 phpmyadmin 的登陆密码,对所有的数据库归集管理。

    在 MongoDB Shell 下 输入:

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

    提示如下:

    管理员账号 root 创建成功,现在拥有了用户管理员
    用户名:root
    密码:123456


    然后,断开 mongod, 关闭数据库,重新启动 mongod.exe ,

    E:Program Filesmongodbin>mongod --auth --dbpath e:datadb  //注意增加了 '--auth'

    我们重新启动 mongo.exe , 注意看下图,show dbs 已经不再显示默认的三个数据库,用 db.auth( 'root', '123456' ) ,返回 1 ,说明验证成功。

    此时,再一次 show dbs  就可以看到默认的三个数据库以及所有后来创建的数据库:

    提示:

    如果我们直接启动 mongod.exe,而不添加  --auth  时,就可以跳过认证,可以新建数据库、插入数据等比较方便,新建完毕了,再用  --auth 启动数据库服务,为添加的数据库配置管理账户。

    4.2创建某一个数据库创建管理账号

    注意当我们新建一个数据库,并想要给这个数据库创建管理用户时,必须先用我们上一步创建的超级管理员登陆 admin 才可以,否则会提示权限不足。

    我们为新创建的 vue-mall-mobile 创建管理账户时,提示报错,主要意思就是权限不足。

    正确操作如下:

    先用超级管理员登陆,即可为其他数据库创建管理账户。

     NoSQLBooster 新建连接配置如下:

    此时的 NoSQLBooster 连接配置时,注意以上参数的变化。

    4.3 内建角色(常用的已加深)

    • Read:允许用户读取指定数据库
    • readWrite:允许用户读写指定数据库
    • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问 system.profile
    • userAdmin:允许用户向 system.users 集合写入,可以找指定数据库里创建、删除和管理用户
    • clusterAdmin:只在 admin 数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
    • readAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读权限
    • readWriteAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读写权限
    • userAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 userAdmin 权限
    • dbAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 dbAdmin 权限。
    • root:只在 admin 数据库中可用。超级账号,超级权限
     
    4.4 URI  形式的访问
     
    生产中常用 URI 形式对数据库进行连接:
    mongodb://aaaaaa:123456@your.db.ip.address:27017/lyh
     OK ,内容就到这里啦,如有问题,欢迎小伙伴们留言交流哦。
     
  • 相关阅读:
    shared_ptr weak_ptr boost 内存管理
    _vimrc win7 gvim
    qt 拖放
    数学小魔术 斐波那契数列
    qt4 程序 移植到 qt5
    (转)字符串匹配算法总结
    c++11
    BM 字符串匹配
    编译qt5 demo
    c++ 类库 学习资源
  • 原文地址:https://www.cnblogs.com/Fcode-/p/12691301.html
Copyright © 2011-2022 走看看