ITPub博客

首页 > 数据库 > NoSQL > MongoDB 初探

MongoDB 初探

原创 NoSQL 作者:静以致远√团团 时间:2015-09-21 17:49:26 0 删除 编辑
安装过程放在后面了

一、开启Mongodb 密码验证功能
默认安装完mongodb是不用密码验证的,直接输入mongo就可以登入数据库进行相关操作,设置参数auth=true启动mongodb密码验证功能,开启改功能步骤如下:
①、修改参数文件auth=flase,并重启mongodb
②、登入数据库,创建管理员用户(默认是没有管理员账户的)
[root@mongodb ~] # mongo
> user admin
> db.createUser(  
  {  
    user: "admin",  
    pwd: "admin",  
    roles: [ { role: "root", db: "admin" } ]  
  }  

③、修改参数文件auth=true,重启数据库,使用admin用户登入数据库
mongo 127.0.0.1:27017/admin(database) -u admin(username)  -p admin(password)
或者
[root@mongodb ~] # mongo
> use admin
> db.auth("admin","admin");

二、用户权限管理

创建user文档,定义了用户的以下形式:
create
{ user: "<name>",
  pwd: "<cleartext password>",
  customData: { <any information> },
  roles: [
    { role: "<role>", db: "<database>" } | "<role>",
    ...
  ]
}

user文档字段介绍:
user字段,为新用户的名字;
pwd字段,用户的密码;
cusomData字段,为任意内容,例如可以为用户全名介绍;
roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色;
在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

示例:
db.createUser(  
  {  
    user: "admin1",  
    pwd: "admin1",  
    roles: [ 
                { role: "read", db: "mydb" }
              ]  
  }  


db.createUser(  
  {  
    user: "admin1",  
    pwd: "admin1",  
    roles: [ 
                { role: "dbAdmin", db: "admin" },
                { role: "backup", db: "admin" }
              ]  
  }  


查找用户信息和删除用户
db.system.users.find();
db.system.users.remove({user:"pmsadapter"});

三、导入导出小结
导出dbname下collectionname 表到 /home/area.dat
mongoexport -d dbname -c collectionname -o /home/area.dat
导入
mongoimport -d dbname -c collectionname /home/area.dat

导出iflashbuy_log数据库/home/my_mongodb_dump
mongodump -d iflashbuy_log -o /home/my_mongodb_dump
恢复数据库
mongorestore -d my_mongodb  /home/my_mongodb_dump

安装过程配置

mongodb下载地址 https://www.mongodb.org/downloads

解压安装包,并创建data和log目录
[root@59-Mysql-Test ~]# tar zxvf mongodb-linux-x86_64-3.0.6
[root@59-Mysql-Test ~]# mv mongodb-linux-x86_64-3.0.6 /usr/local/mongodb 
[root@59-Mysql-Test ~]# mkdir /mongdb/data -p
[root@59-Mysql-Test ~]# mkdir /mongdb/log -p

[root@59-Mysql-Test ~]# cd /usr/local/mongodb/
[root@59-Mysql-Test mongodb]# pwd
/usr/local/mongodb

创建配置文件
[root@59-Mysql-Test mongodb]# vi mongodb.cnf
port = 27017
logpath = /mongodb/log/mongodb59.log
logappend = true
dbpath = /mongodb/data
directoryperdb = true
auth = false

注册服务linux

/lib/lsb/init-functions使定义在init-functions文件中的所有shell函数在当前脚本
[root@59-Mysql-Test bin]# yum install redhat-lsb

[root@59-Mysql-Test bin]# vi /etc/init.d/mongodb
#
#mongod - Startup script for mongod
#
# chkconfig: - 85 15
# description: Mongodb database.
# processname: mongod
# Source function library
. /etc/rc.d/init.d/functions
# things from mongod.conf get there by mongod reading it
# OPTIONS
OPTIONS="-f /usr/local/mongodb/mongodb.cnf"
#mongod
mongod="/usr/local/mongodb/bin/mongod"
lockfile=/var/lock/subsys/mongod
start()
{
  echo -n $"Starting mongod: "
  daemon $mongod $OPTIONS
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch $lockfile
}
 
stop()
{
  echo -n $"Stopping mongod: "
  killproc $mongod -QUIT
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && rm -f $lockfile
}
 
restart () {
        stop
        start
}
ulimit -n 12000
RETVAL=0
 
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart|reload|force-reload)
    restart
    ;;
  condrestart)
    [ -f $lockfile ] && restart || :
    ;;
  status)
    status $mongod
    RETVAL=$?
    ;;
  *)
    echo "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
    RETVAL=1
esac
exit $RETVAL
[root@59-Mysql-Test ~]# service mongodb start

或者不注册服务,直接路径去操作启动也可以
[root@59-Mysql-Test ~]# cd mongodb-linux-x86_64-3.0.6/bin
[root@59-Mysql-Test bin]# ./mongod --dbpath=/mongodb/data --logpath=/mongodb/log/mongo45.log --logappend&
或者
[root@59-Mysql-Test bin]# ./mongod -f  /usr/local/mongodb/mongodb.cnf&

[root@59-Mysql-Test bin]# netstat -lanp  | grep 27017
tcp        0      0 0.0.0.0:27017               0.0.0.0:*                   LISTEN      22250/./mongod      
unix  2      [ ACC ]     STREAM     LISTENING     1935507 22250/./mongod      /tmp/mongodb-27017.sock

注意将注册到开机启动中
[root@59-Mysql-Test ~]# cat /etc/rc.local 
.
.
.
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.cnf

MongoDB连接工具推荐:
MongoChef   首推
NoSQL Manager for MongoDB
MongoVUE

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29320885/viewspace-1805437/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
每个人都有梦想,去实现吧!

注册时间:2013-11-14

  • 博文量
    164
  • 访问量
    2117506