MongoDB系列(一):Linux 环境安装MongoDB与简单使用

  MongoDB是一个开源的文档数据库,具备高性能,高可用性和自动扩展的特点; 是一个基于分布式文件存储的数据库系统,介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

  在 NoSQL 领域里的文档存储数据库系统中,MongoDB 可以说是最具人气的,广泛应用于各个行业的生产中。

  MongoDB官网(多看官方文档):https://www.mongodb.com/

概念

MongoDB 中基本的概念是文档、集合、数据库。MongoDB 将数据存储为一个文档,数据结构由键值(key:value)对组成。 MongoDB 数据文档存储采用的是 BSON 格式,类似于JSON对象。字段值可以包含其他文档,数组及文档数组。

1
2
3
4
5
6
{	
name:"sue",
age:20,
status:"A",
groups:["news","sports"]
}

MongoDB数据类型:https://docs.mongodb.com/manual/reference/bson-types/

与传统数据库概做个对比更易于理解:

SQL术语概念 MongoDB术语概念 解释说明
database database 数据库
table collection 数据库表 / 集合
row document 数据记录行 / 文档
column field 数据字段 / 域
index index 索引
table joins 表连接, MongoDB不支持
primary key primary key 主键,MongoDB自动将**_id**字段设置为主键

安装

MongoDB 3.6版本只支持 64位操作系统

  1. 下载与操作系统对应的版本
    下载地址:https://www.mongodb.com/download-center?ct=1000172319#community
    我这里是 ubuntu-16.x,下载的包是:mongodb-linux-x86_64-ubuntu1604-3.6.5.tgz

  2. 将包上传到 ubuntu 系统
    通过 rzsftp 将安装包上传到 ubuntu 目录里。

  3. 解压包到安装路径

    #tar zxvf mongodb-linux-x86_64-ubuntu1604-3.6.5.tgz -C /usr/local/mongodb/

  4. 运行
    进入解压目录里的bin目录,MongoDB 服务执行文件和客户端文件都此目录下。

    无任何配置启动
    /usr/local/mongodb/bin#./mongod

    此方式 MongoDB 默认会读取/ect/mongod.conf配置文件,默认端口是27017;默认是非安全的无需认证的即可登录;默认绑定本机IP,只能在本机登录。当然所有默认值都支持通过配置文件或运行参数来修改。

  5. 客户端登录
    非认证方法登录(无账号密码和授权的登录)

    /usr/local/mongodb/bin#./mongo

配置

  1. 创建 mongod.conf文件
    压缩包安装默认是没有该配置文件的,可手动创建,文件位置没有固定。

    /usr/local/mongodb/bin# touch mongod.conf

  2. 编辑配置文件,添加属性设置
    以下只是简单配置,后续另开篇单独讲 MongoDB 的配置,MongoDB 官方推荐的是YML格式的配置文件。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #数据库文件位置,该路径要存在,不存在则创建
    dbpath=/data/mongodb/db

    #日志文件位置,该路径要存在,不存在则创建
    logpath=/data/mongodb/logs/mongod.log

    #以追加方式写入日志
    logappend=true

    #绑定访问IP:默认只能本地访问:(localhost)127.0.0.1
    #bind_ip=127.0.0.1
    bind_ip=0.0.0.0

    #绑定所有,充许所有访问,默认是false
    bind_ip_all=true

    #端口,默认
    #port=27016

    #启用定期记录CPU利用率和I/O等待
    #cpu=true

    #是否需要安全认证,默认是不需认证的非安全方式
    #noauth=true
    #auth=true

    #详细记录输出
    verbose=true
  3. 指定启动配置文件

    /usr/local/mongodb/bin# ./mongod -f mongod.conf

    /usr/local/mongodb/bin# ./mongod - -config mongod.conf

  4. 或启动时指定运行参数

    /usr/local/mongodb/bin# ./mongod - -auth - -bind_ip_all - -dbpath /data/mongodb/db - -logpath /data/mongodb/logs/mongod.log &
    末尾&表示后台运行,这样在命令终端关闭时,程序不会退出。

  5. 关闭程序

    /usr/local/mongodb/bin# ./mongod - -shutdown
    不建议使用kill -9 pid强制杀掉进程,会导致数据不完整的情况。

操作

数据库/集合

Shell 客户端登录 MongoDB 服务。

  1. 查看数据库

    show dbs

  2. 选择数据库

    use admin

  3. 查看当前在那个库

     db

  4. 查看集合

    show collections

用户/权限

  1. 客户端登录
    服务器以非认证方式启动,客户端以非认证方式登录。

    /usr/local/mongodb/bin# ./mongo

  2. 选择数据库

    use admin

  3. 创建角色
    授权可访问任何资源,可做任何操作

    db.createRole({role:’sysadmin’,roles:[],privileges:[{resource:{anyResource:true},actions:[‘anyAction’]}]})

  4. 创建用户,归属于上面创建的角色

    db.createUser({user:”root”,pwd:”123456”,roles:[{role:”sysadmin”,db:”admin”}]})
    db.createUser({user:”kitty”,pwd:”123456”,roles: [{role:”userAdminAnyDatabase”,db:”admin”}]})

    MongoDB已有的角色及权限:https://docs.mongodb.com/manual/core/security-built-in-roles/

  5. 选择数据库,查看用户

    show users
    db.system.users.find()

  6. 认证用户

    db.auth(“root”,”123456”)

    前面是账号,后面是密码,输出1时表示授权成功。

  7. 选择数据库,查看用户权限

    db.runCommand({usersInfo:”root”,showPrivileges:true})

  8. 给用户添加角色

    db.grantRolesToUser(“root”,[{role:”readWriteAnyDatabase”,db:”admin”}])

  9. 删除用户

    db.system.users.remove({user:”kitty”})

  10. 关闭MongoDB服务,开启认证方式访问来启动服务
    可以配置文件中开启,也可指定运行参数开启。

    /usr/local/mongodb/bin# ./mongod - -shutdown
    /usr/local/mongodb/bin# ./mongod - -auth –[其它配置]

  11. 客户端以用户/密码登录已授权的数据库

    mongo -u “root” -p “123456” –authenticationDatabase “admin”

文档操作

CRUD操作:https://docs.mongodb.com/manual/crud/

  1. 插入数据

    db.user.insert({name: ‘张三丰’, age:200, address:’武当山’,tags:[‘太极’,’武当’]})

  2. 查看数据

    db.user.find()
    db.user.find().pretty(); //格式化输出

MongoDB系列(一):Linux 环境安装MongoDB与简单使用

http://blog.gxitsky.com/2018/06/10/MongoDB-01-install/

作者

光星

发布于

2018-06-10

更新于

2022-06-17

许可协议

评论