? | RDBMS | NoSQL |
特点 | - 高度组织化结构化数据? - 结构化查询语言(SQL) (SQL)? - 数据和关系都存储在单独的表中。? - 数据操纵语言,数据定义语言? - 严格的一致性 - 基础事务 |
- 代表着不仅仅是SQL - 没有声明性查询语言 - 没有预定义的模式 -键 - 值对存储,列存储,文档存储,图形数据库 - 最终一致性,而非ACID属性 - 非结构化和不可预知的数据 - CAP定理? - 高性能,高可用性和可伸缩性 |
遵循原则 | ACID 原则
|
CAP原则
|
列存储 | 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术语/概念 | 解释/说明 |
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | ? | 表连接,MongoDB不支持 |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
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;
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 服务
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 了,如果没有需要定位到该目录下执行该指令;
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
.....
# for documentation of all options, see:
# http://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 都由说明;
$ mongod -f /etc/mongod.conf --rest默认的 Web 界面端口比服务端口多 1000,默认为 28017,通过浏览器打开:http://127.0.0.1:28017?即可打开该管理端口;