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将数据目录存储在 data\db 目录下。但是这个数据目录不会主动创建,需要我们手动创建,很简单。

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

2.2 创建配置文件

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

systemLog:
    destination: file
    path: e:\data\log\mongod.log
storage:
    dbPath: e:\data\db          //与上一步对应

2.3 运行MongoDB服务器

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

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

E:\Program Files\mongodb\bin\mongod --dbpath e:\data\db          //dbpath为我们刚才创建的data,初次启动,必须添加该参数

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

 

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 Files\mongodb\bin>mongod --auth --dbpath /data/db  //注意增加了 '--auth'

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

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

4.2创建普通用户

我们显示创建一个测试数据库,并向其中插入一条数据:

use lyh

db.lyh.insert({'name':'lyh'})

如果我们只想要给 lyh 数据库创建管理账户该如何操作呢,很简单,过程类似于创建管理员账户,只是 role 有所不同:

use lyh

db.createUser(
  {
    user: "aaaaaa",
    pwd: "123456",
    roles: [ { role: "readWrite", db: "lyh" } ]
  }
)

 

出现如上提示,OK成功。

此时的 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,内容就到这里啦,如有问题,欢迎小伙伴们留言交流哦。
 

猜你喜欢

转载自www.cnblogs.com/Fcode-/p/12691301.html