centos下安装运行mongodb

2014年7月13日 | 标签: , | 点击: 7496 次

MongoDB是一个高性能的分布式存储的非关系型(NoSQL)文档数据库,相对于传统的关系型数据库具有支持对海量数据的高效率存储和访问、对数据库高并发读写及可扩展性和高可用性等特点,而在非关系型数据库中MongoDB又不同于redis这类数据库其还支持对的数据查询及索引而且胜于海量数据的存储和读写(当然官方是不建议建立过多索引的,因为那样将会极大的影响性能,占用过多的内存),所以一般用于海量数据存储和访问,数据存储为类似于JSON的BSON格式,简单的介绍后进入正题。

首先你需要进入mongodb官方下载页:http://www.mongodb.org/downloads,选择对应系统及位数的安装包(实际环境中官方推荐的是64位,因为32位文件存储会有2G的大小限制)

下载并解压,如64位的

wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.4.tgz
tar -zxvf mongodb-linux-x86_64-2.6.4.tgz

然后将解压的文件复制或移动至你期望的目录,如 /usr/local/mongodb下

mv mongodb-linux-x86_64-2.6.4 mongodb
mv mongodb /usr/local

建立配置文件

mkdir /etc/mongodb
vim /etc/mongodb/mongodb.conf

在配置文件中输入下面配置信息(更多配置选项,可参见官方文档:http://docs.mongodb.org/manual/reference/configuration-options/):

logpath= /var/mongodb/logs/mongodb-server.log
dbpath= /var/mongodb/data/
pidfilepath = /var/run/mongodb-server.pid
fork = true
port = 27017
auth = true

上面的logpath为日志路径,dbpath为数据路径,pidfilepath为进程id保存路径,fork默认为false选择true为后台运行,port为程序监听端口默认为27017,auth为启用用户验证默认为false选择true则连接需要验证用户

建立日志和数据目录

mkdir -p /var/mongodb/logs
mkdir -p /var/mongodb/data

然后可以通过运行mongod(其运行参数可参见:http://docs.mongodb.org/manual/reference/program/mongod/)文件启动mongodb,如:

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

这样就算完成了,但只是这样管理上显得很麻烦,例如如果要停止mongodb,则需要运行

ps aux | grep mongod | grep -v grep

然后使用kill命令结束进程,在启动时又要运行上面的命令(还好把配置都写到配置文件上了,如果直接写在mongod命令…)

不管这么样这样的管理是很麻烦的,如果能像系统服务一样使用

service <service_name> [start|stop|restart]

这样管理就好了,同时可以加入开机启动。

恩,这些都是可行的,在写这篇文章时,其实还有上一篇《windows及linux下手动添加删除服务》,其中linux下就是以此为背景写的,当然windows下也一样(windows下mongodb建立服务其实mongodb官方有提供),这里就不再重复了,详见上面的链接。

好了,现在可以开始使用mongodb了。

补充说明:
mongodb的用户及权限管理

1.权限管理

mongodb使用role角色进行权限控制,内置所有角色详情可参见:http://docs.mongodb.org/master/reference/built-in-roles,另外也可自定义角色,限于篇幅及本文的侧重点,这里不会叙述自定义角色操作。

这里仅列出以下几个内置角色

数据库用户角色

read :只读,可以使用常用的find()等操作
readWrite :读写,可以使用find()、insert()、update、remove()等操作

数据库管理角色

dbAdmin:数据管理,包含createCollection()、ceateIndex()、dropDatabase()、dbStats()、dropCollection()、dropIndex()、reIndex()、renameCollectionSameDB()等操作
userAdmin:当前数据库用户管理,包含createRole()、createUser()、dropRole()、dropUser()、rantRole()、changePassword()等用户管理相关操作
dbOwner:数据库所有者,这个角色权限包含readWrite、dbAdmin和useradmin角色的所有权限。

超级用户角色

root:包含所有权限

2、用户管理(详情可见:http://docs.mongodb.org/master/reference/method/js-user-management/

添加用户

进入mongodb执行文件目录,如上面的 /usr/local/mongodb/bin,执行mongo命令进入管理

cd /usr/local/mongodb/bin
./mongo

添加一个全局用户(所有数据库都可以使用)

use admin
db.createUser({'user':'test','pwd':'123456','roles':['root']})

上面的roles为角色设置的root角色,指定数据库创建用户

db.createUser({'user':'test1','pwd':'123456','roles':[{'role':'read','db':'databse1'}])

更新用户

db.uodateUser({'user':'test1','pwd':'test1'})

删除用户

db.dropUser("test1")




目前还没有任何评论.

返回顶部