# MongoDB 基础
# 简介
MongoDB 是一个基于分布式文件存储的数据库。由 C++语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
# 基础概念
Mongodb 是一个文档数据库,以文档形式存储数据,格式类似于 JSON。 与 Mysql 的特点及选型对照
Mongodb | Mysql | |
---|---|---|
关系类型 | 非关系型 | 关系型 |
存储类型 | 文档存储(类似于写 Word ) | 表格存储 (类似于写 Excel) |
操作类型 | NoSQL 操作 (不需要写 sql 语句) | SQL 操作 |
选型对照 | 适合存储格式比较松散的信息,如“爬虫”下来的数据 | 适合存储格式比较规整的信息 |
集合 | 表 | |
field | 列 | |
document | 记录 |
# 使用
# 远程连接
默认情况下,MongoDB 默认只有本地连接,可以更改/etc/mongod.conf
下的net
配置的bindIp
改为0.0.0.0
即可
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
# 权限验证
默认情况下,安装的 mongoDB 数据库具有任意权限,为了安全性需要更改/etc/mongod.conf
下的security
字段,如下所示,然后重启
mongodb 服务。
security:
authorization: enabled
重启结束后,客户端连接到服务器时必须提供用户名和密码,有两种方式:
方式一:先进入 shell,然后验证身份
mongo
> use admin
switched to db admin
> db.auth("admin","admin123")
方式二:shell 连接时,验证身份
mongo -u "admin" -p "admin123" --authenticationDatabase admin
# GUI 连接
可以使用一些 GUI 的工具方便的管理数据库的数据,比如Navicat Premium
新建连接,选择 mongoDB 数据库
Connection Name: 连接的名字,随便起 eg: aliyun mongoDB
SRV record: 不知道是什么
Connection: 选择 Standalone 即可
Host:localhost / 127.0.0.1 / 特定的IP地址
Port: 默认27017
Authentication:如果设置的了数据权限验证,此处可以选择`password`,然后输入链接的数据库名,用户名,秘密
测试链接
可以点击左下角的Test Connection
来测试上面的配置是否有问题
# 跳板机链接
如果mongoDB
部署在内网环境,没有公网的 Ip 地址,在使用Navicat Premium
进行远程连接时,需要先使用SSH tunnel
登录到跳板机上
Host: 跳板机的ip
Port: 默认22
User Name: 跳板机的用户名
Authentication Method: 选择Password
Password: 跳板机的密码
# 经验
- 如果在某个单一的数据库下,那只能对当前数据库的权限进行操作
- 和用户管理相关的操作基本都要在 admin 数据库下运行,要先 use admin