现在感觉随着技术的日新月异,数据库技术从原先的 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 数据库中可用。超级账号,超级权限
mongodb://aaaaaa:123456@your.db.ip.address:27017/lyh