# 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-001

新建连接,选择 mongoDB 数据库

mongodb-002

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登录到跳板机上

mongodb-003

Host: 跳板机的ip
Port: 默认22
User Name: 跳板机的用户名
Authentication Method: 选择Password
Password: 跳板机的密码

# 经验

  • 如果在某个单一的数据库下,那只能对当前数据库的权限进行操作
  • 和用户管理相关的操作基本都要在 admin 数据库下运行,要先 use admin
陕ICP备20004732号-3