MongoDB数据库简介&安装配置,mongodb数据库
MongoDB 简介
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源 NoSQL 数据库系统,在高负载的情况下,添加更多的节点,可以保证服务器性能,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
MongoDB 主页:https://www.mongodb.com
MongoDB 官方文档:https://docs.mongodb.com
NoSQL 和 RDBMS
MongoDB 是一种典型的 NoSQL 数据库,区别与 MySQL,Oracle,DB2 这些传统的关系数据库;? | RDBMS | NoSQL |
特点 | - 高度组织化结构化数据? - 结构化查询语言(SQL) (SQL)? - 数据和关系都存储在单独的表中。? - 数据操纵语言,数据定义语言? - 严格的一致性 - 基础事务 |
- 代表着不仅仅是SQL - 没有声明性查询语言 - 没有预定义的模式 -键 - 值对存储,列存储,文档存储,图形数据库 - 最终一致性,而非ACID属性 - 非结构化和不可预知的数据 - CAP定理? - 高性能,高可用性和可伸缩性 |
遵循原则 | ACID 原则
|
CAP原则
|
以下是 NoSQL 的分类和部分代表:
列存储 | Hbase、Cassandra、Hypertable |
文档存储 | MongoDB、CouchDB |
key-value 存储 | Tokyo Cabinet / Tyrant、Berkeley DB、MemcacheDB、Redis |
图存储 | Neo4J、FlockDB |
对象存储 | db4o、Versant |
xml数据库 | Berkeley DB XML 、BaseX |
以下是部分 SQL 概念对应的 MongoDB 概念:
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | ? | 表连接,MongoDB不支持 |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
MongoDB 安装配置
以下以 Linux 环境的 mongoDB 安装配置作为示例,在 OS X,Window 环境下的操作也是类似的;下载选择合适的 MongoDB 版本下载,注意 window?版本的?mongodb-3.6 的 msi 安装程序可能会出现安装时进度条卡住的情况,此时可以直接杀线程,直接开始配置步骤,或者下载安装 3.4 版本的 mongodb; ?下载地址:https://www.mongodb.com/download-center?jmp=tutorials&_ga=2.97410399.1138236154.1518440736-1543170749.1518440736#community
解压linux 版本一般下载后是一个压缩包,解压该包即可获取 mongodb 的运行程序,假设该压缩包解压后得到目录 mongodb-3.6.2;为了方便启动,一般会把 mongodb-3.6.2/bin 目录写入到系统 PATH 变量;在 mongodb-3.6.2/ 下创建 data,logs 两个目录,分别用于储存数据和日志:
?
assad@DESKTOP-assad:/usr/bin/mongodb-3.6.2$ mkdir data
assad@DESKTOP-assad:/usr/bin/mongodb-3.6.2$ mkdir logs之后需要将?mongodb-3.6.2/ 下所有的文件设置 group 和 own;
启动 mongoDB 服务运行 mongoDB 服务由 2 种方式,第一种是直接指定运行参数,第二种是指定配置文件,这里先演示第一种;?
assad@DESKTOP-assad:/usr/bin/mongodb-3.6.2/bin$ mongod --dbpath=/usr/bin/mongodb-3.6.2/data --logpath=/usr/bin/mongodb-3.6.2/logs/mongo.log ? ?# 指定 data,logpath 位置运行 mongodb 服务
连接 mongoDB?
assad@DESKTOP-assad ~ $ mongo
MongoDB shell version v3.6.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.2
......
>这里我是已经将?mongodb-3.6.2/bin?的路径变量写入到系统 PATH 了,如果没有需要定位到该目录下执行该指令;
设置管理员密码mongodb 默认没有设置密码的,为了安全会设置至少设置一个管理员密码,步骤如下:?
assad@DESKTOP-assad ~ $ mongo ? ? # 登入 mongodb
?
>show dbs; ? ? ? ? # 显示所有存在表
admin ?0.000GB
local ?0.000GB
?
> use admin ? ? ? ?# 使用 admin 数据库
switched to db admin ? ?
?
> db.createUser({user:"assad",pwd:"mongo123",roles:["root"]}) ? ? # 在 admin 数据库中创建用户
Successfully added user: { "user" : "assad", "roles" : [ "root" ] }
?
> exit之后重启 mongoDB 服务,并且以 auth 认证模式启动,如下:?
assad@DESKTOP-assad:/usr/bin/mongodb-3.6.2/bin$ mongod --dbpath=/usr/bin/mongodb-3.6.2/data --logpath=/usr/bin/mongodb-3.6.2/logs/mongo.log ?--auth此时如果直接登陆 mongoDB 服务,所有的数据库操作都会被拒绝,需要以密码登入:?
assad@DESKTOP-assad ~ $ mongo -u assad -p mongo1994 127.0.0.1:27017/admin ? # 以管理员方式登入 mongodb
> show dbs
.....
使用配置文件启动 mongoDB 服务以上的 mongoDB 启动过程参数比较繁琐,可以编写一个配置文件,从配置文件启动 mongoDB,以下是一个示例的配置文件:
/etc/mongod.conf?
# for documentation of all options, see:
# https://docs.mongodb.org/manual/reference/configuration-options/
?
# Where and how to store data.
dbpath=/usr/bin/mongodb-3.6.2/data
journal=true
?
# where to write logging data.
logpath=/usr/bin/mongodb-3.6.2/logs/mongod.log
logappend=true
?
# network interfaces
bind_ip=127.0.0.1
port=27017
?
# security
auth=true通过该配置文件启动 mongodb 服务:?
$ mongod -f /etc/mongod.conf配置文件中的参数其实通过 mongo --help 都由说明;
MongoDB GUI 界面
MongoDB 提供了简单的 HTTP 用户界面,如果要启用该功能,只需要只当启动参数 --rest,如下:?$ mongod -f /etc/mongod.conf --rest默认的 Web 界面端口比服务端口多 1000,默认为 28017,通过浏览器打开:https://127.0.0.1:28017?即可打开该管理端口;
也可以使用 Robo 3T 这种 MongoDB 客户端管理软件,详见:https://robomongo.org
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。