zoukankan      html  css  js  c++  java
  • mongodb安装及配置

    下载安装篇

    MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包。

    下载地址:https://www.mongodb.com/download-center#community

    首先:任意目录下 下载mongodb

    wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.10.tgz # 下载

    tar -zxvf mongodb-linux-x86_64-rhel62-3.4.10.tgz # 解压

    其次: 建立mongodb的文件(我这里选择在/usr/local/下建立)

    1) :  cd /usr/local  

    2) :  mkdir mongodb

    3) :  cd mongodb 

    4):  mkdir data

    5) :  cd data

    6) :  mkdir db

    7) : cd ./..

    8):  mkdir log 

    9) :  cd log

    10):  touch logs

    11):  cd /usr/local/mongodb

    12):  mkdir mongodb-config

    13): cd mongodb-config

    14):  touch server.conf

    以上在/usr/local 创建好mongodb的文件夹,结构为:

    /usr/local/

    --mongodb

      --data

        ---db : 存放数据文件

      --log

        --logs : 存放日志文件

     --mongodb-config

       --server.conf 存放mongodb配置

    最后:将解压包移动到指定目录

    mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb # 将解压包拷贝到指定目录

    设置防火强

    1):  cd /

    2):   /sbin/iptables -I INPUT -p tcp --dport 27017 -j ACCEPT

    3):   /etc/rc.d/init.d/iptables save

    4):   /etc/init.d/iptables restart

    5):   /etc/init.d/iptables status

    开启mongodb服务

    这里有两种启动方式

    a: 直接敲命令

    1):  cd /usr/local/mongodb/bin

    2):  ./mongod -dbpath=/usr/local/mongodb/data/db -logpath=/usr/local/mongodb/log/logs --fork

     

    b: 配置文件的方式启动

    1):  cd/usr/local/mongodb

    2):
      [root@gitlab mongodb]# vi mongodb-config/server.conf
           logpath=/usr/local/mongodb/log/logs
           logappend=true
           dbpath=/usr/local/mongodb/data/db
           fork=true
           bind_ip=0.0.0.0
           port=27017

          参数解释: --dbpath 数据库路径(数据文件)

    --logpath 日志文件路径
    --master 指定为主机器
    --slave 指定为从机器
    --source 指定主机器的IP地址
    --pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。
    --logappend 日志文件末尾添加
    --port 启用端口号
    --fork 在后台运行
    --only 指定只复制哪一个数据库
    --slavedelay 指从复制检测的时间间隔
    --auth 是否需要验证权限登录(用户名和密码)

    3):  ./bin/mongod -f  mongodb-config/server.conf

    注意 bind_ip=0.0.0.0 这项设置是为 本地连接远程 做准备

         fork参数指定后台运行方式,关闭窗口mongodb服务不停止,false或不写该参数则为窗口模式,必须打开保持窗口打开状态才行。

    再通过本地窗口链接

    MongoDB默认设置为无权限访问限制,上面我们也没有进行特殊的认证配置,所以可以直接链接

    通过命令 :  mongo IP地址:端口,即可远程登录服务器了(可以配置mongo的bin目录的环境变量,方便调用客户端程序)

    至此,mongodb服务器已经安装配置完毕,并实现了远程访问。

    账号权限设置篇

    实战应用中,我们一般都会指定MongoDB的账户和权限,提供安全性。

    首先,先建立账号 授权

    1. 输入命令:show dbs,你会发现它内置有两个数据库,一个名为admin,一个名为local。

    2. 输入命令:use admin,你会发现该DB下包含了一个system.user表,呵呵,没错,这个表就等同于MsSql中的用户表,用来存放超级管理员的,那我们就往它里面添加一个超级管理员试试看

    3.输入命令:db.createUser({user:"admin",pwd:"123456",roles:[{"role":"userAdminAnyDatabase","db":"admin"}]})

    4. 输入命令:show collections,查看该库下所有的表,你会发现,MongoDB并没有提示你输入用户名、密码,那就奇怪了,这是怎么回事呢?在文章最开始提到了,

    MongoDB默认设置为无权限访问限制,即然这样,那我们就先把它设置成为需要权限访问限制。

    5.修改我们前面配置的mongdb配置文件mongodb.conf

           [root@gitlab mongodb]# vi mongodb-config/server.conf
           logpath=/usr/local/mongodb/log/logs
           logappend=true
           dbpath=/usr/local/mongodb/data/db
           fork=true
           bind_ip=0.0.0.0
           port=27017
           auth=true  #添加这句即为开通账号认证
    6.通过命令 ps -ef|grep mongo 查看mongo的进程号,然后kill  9472 ,

    重启mongod服务,命令: ./bin/mongod -f  mongodb-config/server.conf

    7. 远程连接mongo服务器,

       切换到admin数据库: use admin

       然后输入命令:db.auth('admin','123456'),输出一个结果值为1,说明这个用户匹配上了,如果用户名、密码不对,会输入0

    8. 输入命令:show collections,呵呵,结果出来了,到这里,权限设置还只讲到一多半,接着往下讲

    9. use mybook 切换到mybook数据库,接下来为该数据库建立账号

    db.createUser({user:'test', pwd:'123456',roles:[{role:'readWrite', db:'mybook'}]})

    10. 输入ctrl+c,退出之前的账号admin

    11.输入命令:db.auth('test','123456'),输出结果1,用户存在,验证成功

    12)远程直接访问对应的数据库方式,mongo 192.168.220.128:27017/mybook -u test -p 123456,如下图

    当然,也可以先连接到mongo服务器,再切换数据库,最后通过db.auth('用户名',‘密码’) 的方式连接到对应的数据库,如下图

    至此,账号分配已经全部完成。

     常用命令篇

    若数据库出现如不能连上,则是一个data目录下的mongod.lock文件的问题,可以用如下的修复的命令,
    mongod --repair

    show users 显示用户

    db 显示当前数据库

    db.system.users.find()  显示所有用户

    db.auth('username','password') 用户登录

    java 调用篇

    http://www.runoob.com/mongodb/mongodb-java.html

    http://www.yiibai.com/mongodb/mongodb_java.html

    参考

    http://blog.csdn.net/qq_26677157/article/details/60960333

    http://www.cnblogs.com/zengen/archive/2011/04/23/2025722.html

    http://www.cnblogs.com/PheonixHkbxoic/p/5665499.html

  • 相关阅读:
    兼容ie6:zindex
    分割网址/链接/url变量
    JS:给select添加option选项
    如果用QQ邮箱订阅一个网站或博客?
    input无边框
    有些标签的innerHTML属性是只读的
    满屏透明层
    文本框光标不居中?
    PHP:json_decode解析JSON数据
    开放平台/API
  • 原文地址:https://www.cnblogs.com/tyhj-zxp/p/7729187.html
Copyright © 2011-2022 走看看