zoukankan      html  css  js  c++  java
  • MongoDB(2.2)MongoDB的安装与基本使用

    【1】前置环境修改

    【1.1】修改 /etc/hosts

    vim /etc/hosts

    192.168.239.129 db3
    192.168.239.131 db4
    192.168.239.130 db5

    【1.2】安装相关依赖包

    (1)配置好yum源,本地和网络都可以(yum源配置、epel源配置

    (2)安装相关依赖包

    yum install -y cyrus-sasl cyrus-sasl-plain cyrus-sasl-gssapi krb5-libs lm_sensors-libs net-snmp-agent-libs net-snmp openssl openssl-devel rpm-libs tcp_wrappers-libs

    【1.3】关闭防火墙与SELINUX安全认证

    #(1)关闭防火墙:
      systemctl disable firewalld
    
    #(2)关闭selinux
      vim /etc/selinux/config
      SELINUX=disabled

    #核验
      getenforce

    【1.4】优化 linux 内核参数

    echo "vm_zone_reclaim_mode=0" >> /etc/sysctl.conf
    sysctl -p

    #1.如果该参数值为0,那么当本地CPU节点所在区域内存使用完,系统会倾向于从其他节点分配内存
    #2.如果改参数为1,那么当本地CPU节点所在区域内存使用完,系统倾向于回收本地CPU的Cache内存

    【1.5】禁止Transparent Huge Pages(THP)大内存数据页(2M一页)

    原本linux的页是4K,但linux默认设置开启大内存页,大小为2M,会导致锁啊、吞吐量等问题。

    服务器重启后立即生效办法:(如果服务器配置高,建议开启)

    #vim /etc/rc.local

    if test -f /sys/kernet/mm/transparent_hugepage/enabled;then
    echo never >/sys/kernel/mm/transparent_hugepage/enabled
    fi
    
    if test -f /sys/kernet/mm/transparent_hugepage/defrag;then
    echo never >/sys/kernel/mm/transparent_hugepage/defrag
    fi

    【1.6】创建Mogodb目录与用户权限

    mkdir -p /mongodb
    mkdir -p /mongodb{data,log,apps}
    
    /usr/sbin/grouadd -g 10001 mongodb
    /usr/sbin/useradd -u 10001 -g mongodb mongodb
    id mongodb
    passwd
    chown -R mongodb:mongodb /mongodb
    chmod -R 775 /mongodb

    【1.7】优化linux读取性能,不适用atime属性记录文件操作时间信息

    vim /etc/fstab

    ..... /mongodb xfs     default,noatime    1  2

    【1.8】修改linux软硬件对于 mongodb 用户的最大连接数

    vim /etc/security/limits.conf

    mongodb    hard  nofile    25600
    mongodb    soft  nofile    25600
    mongodb    hard  nproc     25600
    mongodb    soft  nproc     25600

    【2】下载安装 mongodb

    【2.1】下载mongodb

    (1)下载官网:https://www.mongodb.com/download-center/community

    (2)linux下载:wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.18.tgz

    【2.2】安装依赖

    (1)配置好yum源,本地和网络都可以(yum源配置、epel源配置

    (2)安装相关依赖包

    yum install -y cyrus-sasl cyrus-sasl-plain cyrus-sasl-gssapi krb5-libs lm_sensors-libs net-snmp-agent-libs net-snmp openssl openssl-devel rpm-libs tcp_wrappers-libs

    【2.3】解压/配置环境变量

    #构建目录和用户
    mkdir -p /mongodb
    mkdir -p /mongodb/{data,logs,apps}
    
    /usr/sbin/groupadd -g 10001 mongodb
    /usr/sbin/useradd -u 10001 -g mongodb mongodb
    id mongodb
    chown -R mongodb:mongodb /mongodb
    chmod -R 775 /mongodb
    #解压
    su
    - mongodb cd /mongodb/apps tar -zxvf /soft/mongodb-linux-x86_64-rhel70-4.0.18.tgz ln -s /mongodb/apps/mongodb-linux-x86_64-rhel70-4.0.18/ /mongodb/apps/mongodb

    #用户环境变量
    vi ~/.bash_profile
    PATH=${PATH}:$HOME/.local/bin:/mongodb/apps/mongodb/bin:$HOME/bin

    #全局环境变量
    echo "export PATH=${PATH}:/mongodb/apps/mongodb/bin" >> /etc/profile
    source /etc/profile

    【2.4】mongodb.conf 配置文件编辑

    vim /mongodb/apps/mongodb/bin/mongodb.conf

    dbpath=/mongodb/data
    logpath=/mongodb/logs/mongodb.log
    port=27017
    fork=true #是否后台守护进程
    auth=true
    #noauth=true
    #verbose=true  #打印更完整的详细信息
    #vvvv=true
    journal=true   #使用之后备份容灾比较容易保障
    maxConns=500 #最大连接数
    logappend=true #是否开启日志追加
    directoryperdb=true  #数据目录存储模式,是不是每个数据库一个目录
    #pidfilepath=/var/run/mongo.pid #进程文件
    #cpu=true #为真的话,每4S报告一次CPU的使用情况,信息打出到日志
    #nohttpinterface=false #是否打开http网页管理接口
    #notablescan=false #不禁止表扫描
    #profile=0 #数据库性能分析的
    #slowms=200 #慢查询时间200ms
    #quiet=true #安静的日志输出
    #syncdelay=60 #刷新日志的频率
    bind_ip=127.0.0.1,192.168.239.131

    【2.5】启动和停止、登录 mongodb

    #【1】启动
    1):mongod --config /mongodb/apps/mongodb/bin/mongodb.conf (2):nohup mongod --dbpath /mongod/data --config /mongodb/apps/mongodb/bin.mongodb.conf & #自动启动 Auto Start vim /etc/rc.d/rc.local su - mongodb -c "mongod --config /mongodb/apps/mongodb/bin/mongodb.conf &" #【2】停止 stop -2(在进程退出之前保存数据) (1kill -2 `ps -ef|grep mongod|grep -v grep|awk '{print $2}'` (2kill -2 pid3)mongod  --shutdown --config /mongodb/apps/mongodb/bin/mongodb.conf  mongo -port 27107 use admin db.shutdownServer(); 

    #【3】登录

    #【1】登录

    本机:mongo

    通用:mongo --host serverip:port

    演示:mongo --host 192.168.239.131:27017

     

    【3】MongoDb的基本使用

    (1)use admin :切换数据库(shutdown createuser 等操作都需要在这个库下操作)

    (2)db.createUser({user:"admin",pwd:"123456",roles:["root"]})  :创建一个管理员用户

    (3)db.dropUser("admin"):删除用户

    (4)db.auth("admin","123456"):切换登录用户

    (5)db.version() :查看版本

    (6)实践、创建用户应用权限:创建一个read_user用户,并给予readdb数据库的读写权限

    db.createUser(

    {

      user:"read_user"

      pwd:"read_123456"

      roles:[

        {

          role:"readWrite",db:"readdb"

        }

          ]

    }

    )

    然后,验证账户是否可用

    use readdb

    db.auth("read_user","read_123456")

    (7)授权: db.grantRolesToUser( "admin" , [ { role: "hostManager", db: "admin" } ])

    (8)获取当前使用的数据库名: db.getName()

    【N】报错处理 

    【N.1】To see additional information in this output, start without the "--fork"

    ERROR: child process failed, exited with error number 51

    [2020/1/7 17:09:56] To see additional information in this output, start without the "--fork"


    这种一般要看配置文件指定的错误日志信息(很多可能,比如权限、比如文件限制、比如干脆就是配置文件中的指定路径不存在)。
    我就碰到 配置文件中的指定路径不存在,导致我找到半天错误日志在哪里,发现没有,后面最终在配置文件里取消了 fork参数后,显示出来问题是日志文件路径不存在!(我目录建立的是log,参数文件里写的是logs..尴尬)
      
  • 相关阅读:
    linux下查找文件并按时间顺序排序的方法
    动态口令(OTP)认证技术概览
    [转]关于OpenSSL支持USBKEY证书的尝试
    关于CSP通过CpSetKeyParam存入证书相关问题
    Windows AntiDebug Reference
    cryptapi制作证书
    [转]国密SM3杂凑算法与实现
    [转]国密SM2非对称算法与实现
    [转]国密SM4对称算法实现说明(原SMS4无线局域网算法标准)
    证书的申请过程(usbkey)
  • 原文地址:https://www.cnblogs.com/gered/p/12794878.html
Copyright © 2011-2022 走看看