99 # mongo 的基本安装和配置

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 99 # mongo 的基本安装和配置

关系型数据库和非关系型数据库

  • MySQL Oracle SqlServer 用一种关系模型来组织数据的数据库(查询方便,不方便拓展)
  • nosql mongo redis memcached (不同于传统的关系数据库)

mongo 特点

  • 分布式:文档类型,值就是传统对象类型 key=>value BSON,储存复杂结构的数据
  • 性能高:不需要通过 SQL 层来进行解析(分析的过程 操作的过程 浪费性能),数据之间没有耦合,可以方便拓展,不适合复杂查询

mongo 的安装方式

https://www.mongodb.com/try/download/community

选择自己的版本

我参考的是这篇文章安装的:MongoDB下载安装教程

启动 mongodb

手动启动:自己启动服务端,并且指向路径储存的路径,然后启动客户端,需配置环境变量

mongod --dbpath="D:\Program Files\MongoDB\Server\4.4\data"
mongo

或者启动 MongoDB,再双击 mongo.exe

可执行文件的路径

"D:\Program Files\MongoDB\Server\4.4\bin\mongod.exe" --config "D:\Program Files\MongoDB\Server\4.4\bin\mongod.cfg" --service

cfg 配置文件 D:\Program Files\MongoDB\Server\4.4\bin\mongod.cfg 如下:

在浏览器访问:http://127.0.0.1:27017 出现如下页面证明 mongoDb 启动成功。

mongo 的语句

显示所有的数据库(默认免密码)

show dbs

如果数据库不存在,则创建数据库,否则切换到指定数据库。

use DATABASE_NAME

如果要查看已有集合,可以使用下面两个命令:

show collections
show tables

我们创建数据库kaimo,往集合 kaimo 里插入两条数据

use kaimo
db.kaimo.insertOne({"name":"凯小默1"})
db.kaimo.insertOne({"name":"凯小默2"})

查询

db.kaimo.find({})
db.kaimo.find({"name": "凯小默1"})

删除

db.kaimo.deleteOne({"name": "凯小默2"})

下面创建根用户,在创建一个数据库分配这个数据库的权限,默认可以在 admin 中创建根用户,创建其他数据库,在针对某个数据库中,创建用户,赋予当前权限,下次链接这个数据库时可以登录这个账号。

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

创建一个 user 库,给集合 student 添加两条数据

use user
db.student.insert({name:"凯小默", age: 313})
db.student.insert({name:"凯小默2", age: 3})

ObjectId 的构成

ObjectId 是一个 12 字节的 BSON 类型字符串,按照字节顺序,依次代表:

  • 4 字节:UNIX 时间戳
  • 3 字节:表示运行 MongoDB 的机器
  • 2 字节:表示生成此 _id 的进程
  • 3 字节:由一个随机数开始的计数器生成的值
ObjectId("65279b292d3834025d88a1b9")

MongoDB 开启安全认证,首先使用配置文件,增加参数:

security:
  authorization: enabled

在重新启动,执行 show dbs 发现看不到数据库了

以用户管理员身份进行连接和验证

use admin
db.auth("root", "root")
show dbs

再创建一个用户 kaimo313 去管理用户表,可读可写

use user
db.createUser({user: "kaimo313", pwd: "kaimo313", roles: [{role: "readWrite", db: "user"}]})

重启服务,访问 user 库里的所有集合,会提示:Warning: unable to run listCollections, attempting to approximate collection names by parsing connectionStatus

use user
show collections

上面的原因是因为连着的 MongoDB 中的 user 数据库它是有用户名和密码的,在没有进行登录的情况下,想直接查看数据库集合名称时,遭到了拒绝,因此,首先要进行登录操作,获得查看 collections 的权限。

db.auth("kaimo313", "kaimo313")
show collections

mysql mongo
集合
行和列 BSON

Robo 3T

Robo 3T:MongoDB 可视化工具

Robo 3T v1.4.3下载地址

我参考的是这篇:【Robo 3T】MongoDB可视化工具-- Robo 3T使用教程

点击【Create】,选择【Connection】输入需要连接的服务端【地址】和【端口】

配置权限

双击或者链接

配置user表权限

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
7月前
|
NoSQL 网络协议 Unix
第6期 MongoDB配置启动方式
第6期 MongoDB配置启动方式
394 0
|
5月前
|
NoSQL MongoDB Python
【Python】已完美解决(MongoDB安装报错)Service ‘MongoDB Server (MongoDB)’ (MongoDB) failed tostart
【Python】已完美解决(MongoDB安装报错)Service ‘MongoDB Server (MongoDB)’ (MongoDB) failed tostart
297 1
|
NoSQL 网络协议 安全
第5期 MongoDB配置启动方式
MongoDB配置启动方式
885 0
|
SQL NoSQL 关系型数据库
mongo 的安装与基本的认识
mongodb属于nosql中的文档型数据库,每个文档相当于是一个对象,它没有列的概念,也没有表关系
mongo 的安装与基本的认识
|
SQL NoSQL MongoDB
MongoDB数据的安装与启动
MongoDB数据的安装与启动
214 0
MongoDB数据的安装与启动
|
NoSQL 关系型数据库 MySQL
基于docker安装配置mysql,mongodb,redis
基于docker安装配置mysql,mongodb,redis
241 0
|
NoSQL MongoDB
MongoDB 常见问题 - 解决找不到 mongo、mongod 命令的问题
MongoDB 常见问题 - 解决找不到 mongo、mongod 命令的问题
1130 0
MongoDB 常见问题 - 解决找不到 mongo、mongod 命令的问题