MongoDB安装、配置和基本使用
一、搭建MongoDB的yum源
如果安装epel扩展源,可以安装MongoDB2.4版本
如要安装3.0版本,需要自己配置yum源,官方提供的源只支持64位系统
# vim /etc/yum.repos.d/mongodb-org-3.0.repo
加入如下内容:
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1
然后就可以安装MongoDB了
# yum -y install mongodb-org
二、配置MongoDB
MongoDB的启动脚本位置:/etc/init.d/mongod
MongoDB的配置文件位置:/etc/mongod.conf
MongoDB的日志文件位置:/var/log/mongodb
MongoDB的数据库文件位置: /var/lib/mongo/
修改配置文件:
将fork: true后面的内容去掉
将pidFilePath: /var/run/mongodb/mongod.pid后面的内容去掉
将bindIp:后面的内容去掉(绑定的ip)
修改内核参数:
# echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
# echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
# vim /etc/security/limits.conf加入:
mongod soft nofile 64000
mongod hard nofile 64000
mongod soft nproc 32000
mongod hard nproc 32000
启动MongoDB服务
# /etc/init.d/mongod start
如果启动失败可以看到错误信息
# mongod -f /etc/mongod.conf
三、MongoDB连接和用户管理
1、在本机可以直接运行命令mongo进入到mongodb shell中
2、如果mongodb监听端口并不是默认的27017,则在连接的时候需要加--port选项,mongo --port27018
3、连接远程mongodb,需要加--host,mongo --host 127.0.0.1
4、如果设置了验证,则在连接的时候需要带用户名和密码
mongo -uusername -ppasswd #类似mysql
四、MongoDB用户管理
1、首先mongodb用户是针对数据库来的,建立用户是首相要进入到对应的库里
use test #切换到test数据库下如果没有直接创建
db.createUser({user:"fansik",pwd:"fanjinbao",roles:[{role:'dbOwner',db:'userdb'}]})
use admin #切换到admin库查看用户
db.system.users.find() #查看所有用户(只能在admin库中查看)
show users #查看当前数据库下所有的用户
db.dropUser('fansik') #删除 用户
mongodb数据库角色参考文档
http://bbs.51cto.com/thread-1146654-1.html
五、MongoDB库和集合管理
db.version() #查看数据库版本
use userdb #如果库存在就切换,不存在就创建
show dbs #查看库,此时userdb并没有出现,这是因为该库是空的,还没有任何集合,只需要创建一个集合就能看到了
db.createCollection('fansik') #创建集合fansik,在当前库下创建
db.dropDatabase() #删除当前库,要想删除某个库,必须切换到那个库下面
db.stats() #查看当前库的信息
db.serverStatus() #查看mongodb服务器的状态
六、MongoDB创建集合
创建集合语法:db.createCollection(name,options)
db.createCollection("mycol",{capped : true, autoIndexID : true, size : 6142800, max : 10000 })
name就是集合的名字,options可选,用来配置集合的参数,参数如下:
cappend true/false(可选)如果为true,则启用封顶集合。封顶集合是固定大小的集合,当它达到其最大大小,会自动覆盖最早的条目,如果指定true,则也需要指定尺寸参数
autoindexID true/false(可选)如果为true,自动创建索引_id,字段的默认值是false
size(可选)指定最大大小字节封顶集合,如果封顶是true,那么你还需要指定这个字段,单位是B
max(可选)指定封顶集合允许在文件的最大数量
六、MongoDB集合管理
show collections #查看集合,或者使用show tables
db.Account.insert({AccountID,UserName:"1r43",passwd:"123456"}) #如果集合不存在,直接插入数据,则mongodb会自动创建集合
db.account.find() #查看集合account中的所有文档
db.Account.update({AccountID:1},{"$set":{"User":"100"}}) #如果集合中有User则修改,没有则增加
db.Account.remove({AccountID:1}) #删除集合中的内容
db.Account.drop() #删除Account集合
db.printCollectionStats() #查看集合的状态(要先进入对应的库)