前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB 使用系列(一)-- 安装

MongoDB 使用系列(一)-- 安装

作者头像
木制robot
发布2018-04-13 13:52:53
1.2K0
发布2018-04-13 13:52:53
举报
文章被收录于专栏:木制robot技术杂谈

环境

  • 系统:Ubuntu 16.04
  • MongoDB 版本:3.6

安装

添加软件源

1.添加 MongoDB 签名到 APT

代码语言:javascript
复制
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

2.创建/etc/apt/sources.list.d/mongodb-org-3.6.list文件并写入命令

Ubuntu 14.04

代码语言:javascript
复制
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

Ubuntu 16.04

代码语言:javascript
复制
$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

由于官方镜像下载速度过慢可采用国内镜像进行安装:

Ubuntu 14.04

代码语言:javascript
复制
echo "deb http://mirrors.aliyun.com/mongodb/apt/ubuntu trusty/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

Ubuntu 16.04

代码语言:javascript
复制
echo "deb http://mirrors.aliyun.com/mongodb/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

更新软件源列表

代码语言:javascript
复制
$ sudo apt-get update

安装 MongoDB

代码语言:javascript
复制
$ sudo apt-get install -y mongodb-org

运行 MongoDB

1.启动 MongoDB

代码语言:javascript
复制
sudo service mongod start

2.通过日志确认 MongoDB 启动成功

代码语言:javascript
复制
$ tail -10f /var/log/mongodb/mongod.log

看到下列内容则为启动成功

代码语言:javascript
复制
$ tail -10f /var/log/mongodb/mongod.log

3.关闭 MongoDB

代码语言:javascript
复制
$ sudo service mongod stop

4.重启 MongoDB

代码语言:javascript
复制
$ sudo service mongod stop

5.查看 MongoDB 状态

代码语言:javascript
复制
$ sudo service mongod status

MongoDB 数据、日志及配置文件默认存放路径

  1. 数据默认存放路径:/var/lib/mongodb
  2. 日志默认存放路径:/var/log/mongodb
  3. 配置文件默认存放路径: /etc/mongod.conf

用户权限设置

添加管理员账号

代码语言:javascript
复制
$ mongo
MongoDB shell version v3.6.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.2
> use admin 
> db.createUser(
   {
     user: "admin",
     pwd: "mongodb123456",
     roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
   }
)
Successfully added user: {
    "user" : "admin",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}

在配置文件中开启权限验证

代码语言:javascript
复制
$ sudo vim /etc/mongod.conf

在配置文件中加入:

代码语言:javascript
复制
security:  
     authorization: enabled

重启 MongoDB 服务

代码语言:javascript
复制
$ sudo service mongod restart

验证权限是否生效

代码语言:javascript
复制
$ mongo
MongoDB shell version v3.6.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.2
> show dbs
2018-02-01T14:39:46.976+0800 E QUERY    [thread1] Error: listDatabases failed:{
	"ok" : 0,
	"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0, $db: \"admin\" }",
	"code" : 13,
	"codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:65:1
shellHelper.show@src/mongo/shell/utils.js:813:19
shellHelper@src/mongo/shell/utils.js:703:15
@(shellhelp2):1:1
> use admin
switched to db admin
> db.auth('admin', 'mongodb123456')
1
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

添加普通用户

代码语言:javascript
复制
> use spiders
switched to db spiders
> db.createUser(
... {
...    user: "spiders",
...    pwd: "spiders@2018",
...    roles: [{ role: "readWrite", db: "spiders" }]
... }
... )
Successfully added user: {
	"user" : "spiders",
	"roles" : [
		{
			"role" : "readWrite",
			"db" : "spiders"
		}
	]
}

成功添加一个普通用户:

  • 用户名:spiders
  • 密码:spiders@2018
  • 权限:读写 spiders 数据库

内建角色

1.角色介绍

  • 数据库用户角色:read、readWrite
  • 数据库管理角色:dbAdmin、dbOwner、userAdmin
  • 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
  • 备份恢复角色:backup、restore
  • 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  • 超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
  • 内部角色:__system

2.角色说明

  • Read:允许用户读取指定数据库
  • readWrite:允许用户读写指定数据库
  • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问 system.profile
  • userAdmin:允许用户向 system.users 集合写入,可以找指定数据库里创建、删除和管理用户
  • clusterAdmin:只在 admin 数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
  • readAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读权限
  • readWriteAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读写权限
  • userAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 userAdmin 权限
  • dbAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 dbAdmin 权限
  • root:只在 admin 数据库中可用。超级账号,超级权限

参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 安装
    • 添加软件源
      • 更新软件源列表
        • 安装 MongoDB
          • 运行 MongoDB
            • MongoDB 数据、日志及配置文件默认存放路径
              • 用户权限设置
                • 添加管理员账号
                • 在配置文件中开启权限验证
                • 重启 MongoDB 服务
                • 验证权限是否生效
                • 添加普通用户
                • 内建角色
            • 参考
            相关产品与服务
            云数据库 MongoDB
            腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档