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

star2017 1年前 ⋅ 1323 阅读

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

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

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

概念

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

{    
    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格式的配置文件。

     #数据库文件位置,该路径要存在,不存在则创建
     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(); //格式化输出

更多内容请访问:IT源点

相关文章推荐

全部评论: 0

    我有话说: