windows10下mogodb安装记录

安装MogoDB版本为4.2.6

MongoDB介绍

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

在高负载的情况下,添加更多的节点,可以保证服务器性能。

MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

注意:本博客是zip压缩包形式安装MongoDB,其他方式有略微区别,但大体是一样的

下载mogodb

设置环境变量

选定一个mongodb目录,将bin目录添加到path变量中即可。
如:设置mogoDB环境变量

安装

创建data和log数据文件目录,和mongo的日志记录文件MongoDB.log

在这里插入图片描述

在win10中创建mondoDB服务

  1. 管理员身份运行cmd窗口
  2. 设置mondod参数配置,注意命令不要写错。
  3. 配置log日志路径、data数据路径
  4. 创建mongoDB服务
    1. 综上,命令如下:mongod --dbpath=D:\myDev\db\mogodb\db --logpath=D:\myDev\db\mogodb\log\MongoDB.log --install --serviceName "MongoDB"
  5. 查看windos服务

启动

net start MongoDB
#启动刚才创建好的服务

启动服务

连接测试

使用Navicat进行连接,测试是否启动成功。
mogodb连接测试
好了!现在可以愉快地使用mogodb啦~

MongoDB一些简单的命令

#MongoDB客户端是一个JavaScript shell,可以执行一些简单的算术运算。如+、*运算
#查看所有的数据库
show dbs
#查看当前使用的数据库
db
#往mySet集合中插入一个字段{x:10}
db.mySet.insert({x:10})
#查看集合中的所有字段。
db.mySet.find()

MongoDB配置用户名和密码

MongoDB数据库在默认是没有用户名及密码,不用安全验证的,只要连接上服务就可以进行CRUD操作。

如果要安全一些,给MongoDB配置用户名和密码,可以按以下步骤操作。

第一步 开启安全性验证

如果需要给MongoDB数据库使用安全验证,则需要用--auth开启安全性检查,开启后只有数据库认证的用户才能执行读写操作。

开户安全性检查,有两种方式:

第一种:重新创建window service服务器,在创建服务时打开安全性验证
  1. 使用管理员身份打开cmd,启动cmd命令窗口。
  2. 在窗口中输入mongod --auth --logpath "C:\Program Files\mongodb\data\log\MongoDB.log" --logappend --dbpath "C:\Program Files\mongodb\data\db" --directoryperdb --reinstall命令

此命令首先会移除已创建的window service服务,然后再次创建window service服务并开启安全性验证。

第二种:直接开启安全性验证
  1. 使用管理员身份打开cmd,启动cmd命令窗口。
  2. 在窗口中输入mongod --dbpath "D:\myDev\db\mogodb\db" --logpath "D:\myDev\db\mogodb\log\MongoDB.log" --auth
  3. 如下

注意:带有-auth参数时,必须通过认证才可以查询数据。如果没有加-auth参数,即使配置了安全认证用户,也不需要认证谁都可以操作。

第二步 创建用户

进入bin目录,启动mongo.exe进入mongodb的命令行管理。
输入命令:

use admin
# 注:创建一个用户名和密码为root的管理员
db.createUser({ user: "root",pwd: "root",customData:{name:"root"},roles:[{ role: "userAdminAnyDatabase",db: "admin" }]})
# 登陆新创建的用户 注:登录用户首先需要使用“use 数据库名称
db.auth('root','root')
# 显示连接
show collections
# 注: 和用户管理相关的操作基本都要在admin数据库下运行,要先use admin;

# 查看用户信息
db.runCommand({usersInfo:"userName"})

# 修改用户密码
use admin
db.changeUserPassword("username", "xxx")
# 补充 创建一个不受访问限制的超级用户 
use admindb.createUser({user:"superuser",pwd:"123456",roles:["root"] })

注:customData 用户信息备注

现在我们为mongodb的admin数据库添加一个用户root,密码也是root。mongodb可以为每个数据库都建立权限认证,也就是你可以指定某个用户可以登录到哪个数据库。

在上面的命令中,我们为admin数据库添加了一个root用户,在mongodb中admin数据库是一个特别的数据库,这个数据库的用户,可以访问mongodb中的所有数据库。

MongoDB安装好以后有默认的admin表和local表;其中admin存放的是用户信息

好了,现在我们已经为mongodb设置了一个全局用户root,接下来先重启mongodb,使创建的用户生效。

如果你要为test数据库,设置一个test用户,使用如下命令:

use test
admindb.createUser({user:"superuser",pwd:"123456",roles:["root"] })
# test
use testdb.createUser({user:"test",pwd:"123456",roles:[{role:"read",db:"test"}]})
# 指定对多个数据库的访问
use testdb.createUser({user:"test",pwd:"123456",roles:[{role:"read",db:"test"},{role:"read",db:"db01"},{role:"read",db:"db02"}]})

补充信息

roles 用户角色:

  1. 数据库用户角色:read、readWrite;
  2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
  3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
  4. 备份恢复角色:backup、restore;
  5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  6. 超级用户角色:root

创建一般用户,也是用createUser

每个数据库的用户账号都是以文档形式存储在system.users集合里面的,
文档结构{‘user’:username, ‘readOnly’:true, ‘pwd’: password hash}。password hash是根据用户名和密码生成的散列。

其他MogoDB命令

# 查询某个数据库下的用户
db.system.users.find(); 
# 删除某个数据库下的所有用户
db.system.users.remove()
# 删除指定用户
db.system.users.remove({'user':'userName'})

常规crud命令

# 查看现有数据库及大小
show dbs;
# 查看数据库表
show tables
# 查看数据库集合
show collections
# 创建数据库
use databaseName;
# 插入数据 #格式
db.conllectionName.insert({"key":"value"});
#若数据插入成功则提示:WriteResult({ "nInserted" : 1 })
db.conllectionName.insert({"libai":"李白"});
# 查看插入的文档/数据
db.conlletctionName.find();

插入数据

插入数据需要注意:MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。
注意2: 在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

删除数据库和删除集合
# 删除数据库
# 删除当前数据库
db.dropDatabase()
#注意,操作前先看当前数据库是哪个,默认是test

# 删除集合
# 格式:db.集合名称.drop()
db.collection.drop()
# 创建集合
db.createCollection(name, options)

注意:mongodb插入数据时,即使不创建集合直接添加数据,MongoDB 会根据你的命令上面写的集合名称自动创建集合。

参数说明:

  - name: 要创建的集合名称
  - options: 可选参数, 指定有关内存大小及索引的选项

options 可以是如下参数:

字段类型描述
capped布尔(可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
当该值为 true 时,必须指定 size 参数。
autoIndexId布尔(可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size数值(可选)为固定集合指定一个最大值(以字节计)。
如果 capped 为 true,也需要指定该字段。
max数值(可选)指定固定集合中包含文档的最大数量。

注:在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值