MongoDB Install & Configuration

1. Environment

2. Install

  1. 解压到指定目录

    #创建存放目录(安装目录、日志、数据)
    mkdir -p /usr/local/mongodb
    mkdir /usr/local/mongodb/logs
    mkdir /usr/local/mongodb/data
    #解压到存放目录
    tar zxvf /opt/mongodb-linux-x86_64-rhel70-4.4.7.tgz -C /usr/local/mongodb/
    cd /usr/local/mongodb
    #重命名
    mv mongodb-linux-x86_64-rhel70-4.4.7 mongodb
    
  2. 配置环境变量

    #编辑环境变量
    vi /etc/profile
    #添加此配置
    export MONGODB_HOME=/usr/local/mongodb/mongodb
    export PATH=$PATH:$MONGODB_HOME/bin
    #当然你也可以直接把bin写上去都是一样
    export PATH=$PATH:/usr/local/mongodb/mongodb
    #保存退出
    esc :wq 
    #更新一下
    source /etc/profile
    
  3. 测试环境变量

    echo $MONGODB_HOME
    

3. Configuration

  1. 新建MongoDB配置文件

    touch /usr/local/mongodb/mongodb/bin/mongodb.conf
    vi /usr/local/mongodb/mongodb/bin/mongodb.conf
    
  2. 编辑配置文件

    #在文件中插入如下内容
    port=27017 #端口
    dbpath=/usr/local/mongodb/data #数据库存文件存放目录
    logpath=/usr/local/mongodb/logs/mongodb.log #日志文件存放路径
    logappend=true #使用追加的方式写日志
    journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
    fork=true #以守护进程的方式运行,创建服务器进程
    maxConns=100 #最大同时连接数
    auth=true #启用验证
    #即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
    storageEngine=wiredTiger  #存储引擎有mmapv1、wiretiger、mongorocks
    bind_ip = 0.0.0.0  #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
    
  3. 启动数据库

    mongod --config /usr/local/mongodb/mongodb/bin/mongodb.conf
    ps -ef | grep mongo
    kill -9 进程号
    
  4. 配置 mongodb 服务

    cd /lib/systemd/system
    touch mongodb.service
    vi mongodb.service
    

    添加如下内容

    [Unit]
    Description=mongodb
    After=network.target remote-fs.target nss-lookup.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/mongodb/mongodb/bin/mongod --config /usr/local/mongodb/mongodb/bin/mongodb.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/usr/local/mongodb/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/mongodb/bin/mongodb.conf
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    

    更改文件权限

    chmod 754 mongodb.service
    

    启动服务

    systemctl daemon-reload
    systemctl start mongodb.service
    systemctl enable mongodb.service
    
  5. 开放防火墙

    firewall-cmd --permanent --zone=public --add-port=27017/tcp
    firewall-cmd --reload
    firewall-cmd --zone=public --list-port
    
  6. 完成