Windows下安装配置MongoDB
一,介绍
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
二,安装配置
当前数据库版本:Mongodb 4.0.5
第一步:下载MongoDB
第二步:安装MongoDB
下载后双击该文件,按操作提示安装即可。但是安装过程中,你可以通过点击 "Custom(自定义)" 按钮来设置你的安装目录。
第三步:创建数据库文件的存放位置
在MongoDB下创建data,在data下再创建db:D:\MongoDB\data\db
因为启动mongodb服务之前需要必须创建数据库文件的存放文件夹,否则命令不会自动创建,而且不能启动成功。
第四步:启动MongoDB服务
进入D:\MongoDB\bin目录(注意:先输入d:进入d盘,然后输入cd D:\MongoDB\bin),然后输入如下的命令启动mongodb服务:mongod --dbpath D:\MongoDB\data\db,如果出现以下界面,表示启动成功
27017是mongodb的默认端口号
参数 描述
--bind_ip 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP
--logpath 定MongoDB日志文件,注意是指定文件不是目录
--logappend 使用追加的方式写日志
--dbpath 指定数据库路径
--port 指定服务端口号,默认端口27017
--serviceName 指定服务名称
--serviceDisplayName 指定服务名称,有多个mongodb服务时执行。
--install 指定作为一个Windows服务安装。
第五步:配置MongoDB验证
MongoDB 默认直接连接,无须身份验证,如果当前机器可以公网访问,且不注意Mongodb 端口(默认 27017)的开放状态,那么Mongodb就会产生安全风险,被利用此配置漏洞,入侵数据库。
配置MongoDB验证,用于连接操作数据库,提高安全性
1,管理员账户
创建管理员账户
1 use admin
2
3 db.createUser(
4 {
5 user: "adminUser",
6 pwd: "adminPass",
7 roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
8 }
9 )
如果出现如下界面,则表示创建成功
验证用户
1 use admin
2
3 db.auth("adminUser", "adminPass")
如果出现如下界面,则表示验证成功
2,普通账户
创建普通账户
1 use jackson_YingQi
2
3 db.createUser(
4 {
5 user: "myAdminUser",
6 pwd: "myAdminPass",
7 roles: [ { role: "readWrite", db: "jackson_YingQi" }]
8 }
9 )
如果出现如下界面,则表示创建成功
验证用户
1 use jackson_YingQi
2
3 db.auth("myAdminUser", "myAdminPass")
如果返回1,表示验证成功
三,安装配置可视化工具
可视化工具还方便操作与查看
第一步:下载Robo 3T
第二步:安装Robo 3T
一直点击下一步即可,可自定义安装路径
第三步:配置创建连接
1,打开Robo 3T ,点击“create”创建一个到mongoDB的连接。
2,给创建的连接新建一个名称,并填上数据库的ip和端口。默认是localhost
3,连接成功之后,插入数据,编辑之后再保存就可以。
查看刚才插入的数据
四,常用命令
4.1,内置角色
- Read:允许用户读取指定数据库
- readWrite:允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
- userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
- readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
- dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
- root:只在admin数据库中可用。超级账号,超级权限
4.2,命令
- show dbs 显示全部的数据库
- use dbName(数据库名)进入数据库(若没有则是创建数据库)
- db 输出当前在哪个库
- show tables 查看表
4.3,MongoDB数据类型
$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。
Type | Number | Alias | Notes |
---|---|---|---|
Double | 1 | “double” | |
String | 2 | “string” | |
Object | 3 | “object” | |
Array | 4 | “array” | |
Binary data | 5 | “binData” | |
Undefined | 6 | “undefined” | Deprecated. |
ObjectId | 7 | “objectId” | |
Boolean | 8 | “bool” | |
Date | 9 | “date” | |
Null | 10 | “null” | |
Regular Expression | 11 | “regex” | |
DBPointer | 12 | “dbPointer” | Deprecated. |
JavaScript | 13 | “javascript” | |
Symbol | 14 | “symbol” | Deprecated. |
JavaScript (with scope) | 15 | “javascriptWithScope” | |
32-bit integer | 16 | “int” | |
Timestamp | 17 | “timestamp” | |
64-bit integer | 18 | “long” | |
Decimal128 | 19 | “decimal” | New in version 3.4. |
Min key | -1 | “minKey” | |
Max key | 127 | “maxKey” |
来源:oschina
链接:https://my.oschina.net/u/4307735/blog/3647794