资讯专栏INFORMATION COLUMN

mongodb从2.6迁移到3.0过程

xorpay / 1339人阅读

摘要:数据的迁移由于需要换引擎,所以原来的数据不能直接使用了,必须使用和两个工具来迁移数据。指定一个时间限制以毫秒为单位。以上是新版本用户角色权限的一些说明。到这里,单实例的从迁移到就基本完成了。

  

首发于 搞起博客

总共有这么几个问题需要解决:
1. mongodb3.0版本的二进制包
1. wiredTiger引擎的配置
1. 数据的迁移
1. 权限

mongodb3.0的二进制包

这个就不用多说了,直接去官网选择对应的系统下载就好
https://www.mongodb.org/downloads
我是centos 6.3,对应的发行版貌似是redhat6.x,所以选择的redhat6 64bit

wiredTiger引擎的配置

官方给的例子是以yaml形式写的配置,我还是以conf文件形式,所以就在后面追加了一个选项就可以了。当然我是重建的库路径,如果原有的数据路径的话,启用wiredTiger是会报错的。这就是下面要说的一个部分。

dbpath=/your/data/path
logpath=/your/log/path
logappend=true
bind_ip = 127.0.0.1
auth = true
port = 27017                                                                                                                                           
journal = true
#fork=true
storageEngine=wiredTiger
数据的迁移

由于需要换引擎,所以原来的数据不能直接使用了,必须使用monogodumpmongorestore两个工具来迁移数据。
具体操作可以参见这篇文章
通过mongodump和mongorestore实现Mongodb备份和恢复

权限

那么将数据导入之后,如果需要设置权限的话,首先是需要admin库中创建一个user的,还是先把auth=true给注释掉了,创建个用户,到这里懵逼了一下,提示addUser方法错误,查了一下发现,3.0的用户及权限有些改变。

定义

创建一个数据库新用户用db.createUser()方法,如果用户存在则返回一个用户重复错误。

语法

db.createUser(user, writeConcern)
* user这个文档创建关于用户的身份认证和访问信息;
* writeConcern这个文档描述保证MongoDB提供写操作的成功报告。

· user文档,定义了用户的以下形式:

{ user: "",
  pwd: "",
  customData: {  },
  roles: [
    { role: "", db: "" } | "",
    ...
  ]
}
user文档字段介绍:

user字段,为新用户的名字;

pwd字段,用户的密码;

cusomData字段,为任意内容,例如可以为用户全名介绍;

roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色;
在roles字段,可以指定内置角色和用户定义的角色。

Built-In Roles内置角色:
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root  
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system
PS:关于每个角色所拥有的操作权限可以点击上面的内置角色链接查看详情。
writeConcern文档 官方说明

w选项:允许的值分别是 1、0、大于1的值、"majority"、;

j选项:确保mongod实例写数据到磁盘上的journal(日志),这可以确保mongd以外关闭不会丢失数据。设置true启用。

wtimeout:指定一个时间限制,以毫秒为单位。wtimeout只适用于w值大于1。

例如:在products数据库创建用户accountAdmin01,并给该用户admin数据库上clusterAdmin和readAnyDatabase的角色,products数据库上readWrite角色。

use products
db.createUser( { "user" : "accountAdmin01",
                 "pwd": "cleartext password",
                 "customData" : { employeeId: 12345 },
                 "roles" : [ { role: "clusterAdmin", db: "admin" },
                             { role: "readAnyDatabase", db: "admin" },
                             "readWrite"
                             ] },
               { w: "majority" , wtimeout: 5000 } )

以上是新版本用户、角色、权限的一些说明。

看看我们现在要做的:
先创建个管理员

use admin
db.createUser(
  {
    user: "adminuser",
    pwd: "12345678",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

再创建我们应用库的用户

use appdb
db.createUser(
 {
   user: "luoyjx",
   pwd: "12345678",
   roles: [
      { role: "readWrite", db: "appdb" }
   ]
 }
)

使用db.auth(username,pwd)可以验证一下

创建用户大概到这里了,创建完admin,再创建一个普通用户就基本OK了。

到这里,单实例的mongodb从2.6迁移到3.0就基本完成了。

TODO

副本集(没有折腾)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/18766.html

相关文章

  • MongoDB2.4升级3.0的详细步骤

    摘要:于是就有了这次的版本升级任务。如果返回的值小于,那么则需要用在库里具有权限的用户连上的库然后执行用户认证格式转换。参考文档及软件下载链接升级官方指南升级官方指南警告的解决方案下载下载 最近为了长远考虑想把项目MongoDB里存放的400多万数据迁移到云服务厂商提供的MongoDB服务上,省去自己去维护的时间,但是看了下云服务对MongoDB数据迁移上云的要求是自建MongoDB数据库的...

    whatsns 评论0 收藏0
  • (翻译) MongoDB(12) 在 Amazon Linux 上安装MongoDB社区版

    摘要:概述使用这个教程在使用软件包安装社区版本安装教程仅支持位操作系统详细信息请参阅平台支持软件包在自己的存储库中提供官方支持软件包此存储库包含以下软件包软件名简介一个元软件包将自动安装下面列出的四个组件包包含守护程序和关联配置和初始化脚本 概述 使用这个教程在 Amazon Linux 使用 .rpm 软件包安装 MongoDB 社区版. 本安装教程仅支持64位操作系统. 详细信息请参阅平...

    gself 评论0 收藏0
  • (翻译) MongoDB(10) 在 Red Hat 企业版或者 Centos Linux 上安装M

    摘要:概述使用这个教程在企业版或者使用软件包安装社区版虽然一些发行版包含自己的软件包官方的社区版包通常是最新的平台支持本安装教程仅支持位操作系统详细信息请参阅平台支持不建议对企业版的支持软件包在自己的存储库中提供官方支持软件包此存储库包含以下软件 概述 使用这个教程在 Red Hat 企业版 Linux 或者 CentOS6/7 Linux 使用 .rpm 软件包安装 MongoDB 社区版...

    cartoon 评论0 收藏0
  • Vue+Express全栈购物商城

    摘要:一前言提纲基于和框架写的一个全栈购物商城,记录项目过程中遇到的一些问题以及经验和技巧。服务端技术栈登录授权用认证机制,来实现登录登出。服务器配置和缓存策略,根据不同的来代理。申请证书全站升级到,配置的协议。一、前言提纲 基于Vue和Express框架写的一个全栈购物商城,记录项目过程中遇到的一些问题以及经验和技巧。 二、历史版本 基于Vue-CLI2.0:点我查看 这个分支版本是一两年前...

    Richard_Gao 评论0 收藏0
  • Vue+Express全栈购物商城

    摘要:一前言提纲基于和框架写的一个全栈购物商城,记录项目过程中遇到的一些问题以及经验和技巧。服务端技术栈登录授权用认证机制,来实现登录登出。服务器配置和缓存策略,根据不同的来代理。申请证书全站升级到,配置的协议。 一、前言提纲 基于Vue和Express框架写的一个全栈购物商城,记录项目过程中遇到的一些问题以及经验和技巧。 二、历史版本 基于Vue-CLI2.0:点我查看这个分支版本是一两...

    luzhuqun 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<