首发于 搞起博客mongodb
总共有这么几个问题须要解决:
1. mongodb3.0版本的二进制包
1. wiredTiger引擎的配置
1. 数据的迁移
1. 权限数据库
这个就不用多说了,直接去官网选择对应的系统下载就好
https://www.mongodb.org/downloads
我是centos 6.3,对应的发行版貌似是redhat6.x,因此选择的redhat6 64bitcentos
官方给的例子是以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
因为须要换引擎,因此原来的数据不能直接使用了,必须使用monogodump
和mongorestore
两个工具来迁移数据。
具体操做能够参见这篇文章
经过mongodump和mongorestore实现Mongodb备份和恢复app
那么将数据导入以后,若是须要设置权限的话,首先是须要admin库中建立一个user的,仍是先把auth=true
给注释掉了,建立个用户,到这里懵逼了一下,提示addUser方法错误,查了一下发现,3.0的用户及权限有些改变。工具
建立一个数据库新用户用db.createUser()方法,若是用户存在则返回一个用户重复错误。ui
db.createUser(user, writeConcern)
* user这个文档建立关于用户的身份认证和访问信息;
* writeConcern这个文档描述保证MongoDB提供写操做的成功报告。rest
· user文档,定义了用户的如下形式:日志
{ user: "<name>", pwd: "<cleartext password>", customData: { <any information> }, roles: [ { role: "<role>", db: "<database>" } | "<role>", ... ] }
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:关于每一个角色所拥有的操做权限能够点击上面的内置角色连接查看详情。
例如:在products数据库建立用户accountAdmin01,并给该用户admin数据库上clusterAdmin和readAnyDatabase的角色,products数据库上readWrite角色。code
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就基本完成了。
副本集(没有折腾)