MongoDB 3.x 安装配置
目录
(见右侧目录栏导航)
- 1. 安装Mongodb
- 1.1 使用二进制包安装
- 1.2 运行MongoDB
- 2. MongoDB 配置文件详解
- 2.1 说明
- 2.2 配置文件格式
- 2.3 配置文件的核心选项
- 2.3.1 systemLog 选项
- 2.3.2 processMangement 选项
- 2.3.3 net 选项
- 2.3.4 storage 选项
- 2.3.5 replication 选项
- 3. 启动/关闭MongoDB服务
- 3.1 通过 mongod 命令启动
- 3.2 通过服务启动
1. 安装Mongodb
官网下载地址:https://www.mongodb.com/download-center/community
官网Centos/RHEL安装教程:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
1.1 使用二进制包安装
(1)安装前准备
OS:CentOS Linux release 7.2
首先安装依赖:
- yum install libcurl openssl -y
(2)下载并解压
MongoDB下载中心 这里采用 mongodb-linux-x86_64-rhel70-3.6.10.tgz 版本
- [root@mongodb src]# tar xf mongodb-linux-x86_64-rhel70-3.6..tgz
- [root@mongodb src]# mkdir -pv /mongodb
- mkdir: created directory ‘/mongodb’
- [root@mongodb src]# cp -a mongodb-linux-x86_64-rhel70-3.6./bin/ /mongodb/
(3)添加MongoDB执行文件到环境变量PATH中
- [root@mongodb src]# echo "export PATH=$PATH:/mongodb/bin" >> /etc/profile.d/mongodb.sh
- [root@mongodb src]# . /etc/profile.d/mongodb.sh
1.2 运行MongoDB
(1)前提
设置系统 ulimit
- [root@mongodb src]# egrep -v "^#|^$" /etc/security/limits.conf
- * soft nproc
- * hard nproc
- * soft nfile
- * soft nfile
- [root@mongodb src]# ulimit -SHn
(2)目录
使用默认目录
默认,MongoDB使用mongod用户和使用默认的目录
/var/lib/mongo 数据目录
/var/log/mongodb 日志目录
这里我们不使用默认的目录,采取自行指定目录
创建MongoDB 使用目录
- [root@mongodb ~]# mkdir -p /mongodb/{bin,data,etc,log,run}
2. MongoDB 配置文件详解
2.1 说明
配置mongodb有两种方式:
(1)通过mongod和mongos两个命令;
(2)通过配置文件的方式(推荐使用)
2.2 配置文件格式
mongodb 配置文件采用的 YAML格式;
例如:
- systemLog:
- destination: file
- path: "/var/log/mongodb/mongod.log"
- logAppend: true
- storage:
- journal:
- enabled: true
- processManagement:
- fork: true
- net:
- bindIp: 127.0.0.1
- port:
- setParameter:
- enableLocalhostAuthBypass: false
2.3 配置文件的核心选项
2.3.1 systemLog 选项
- systemLog:
- verbosity: <int>
- quiet: <boolean>
- traceAllExceptions: <boolean>
- syslogFacility: <string>
- path: <string>
- logAppend: <boolean>
- logRotate: <string>
- destination: <string>
- timeStampFormat: <string>
- component:
- accessControl:
- verbosity: <int>
- command:
- verbosity: <int>
==================重点参数==================
systemLog.destination
类型:string
作用:指定日志文件的路径,如果设置了这个值,必须指定systemLog.path.如果没有设置,日志会标准的输出到后台
systemLog.path
类型:string
作用:指定日志文件的目录
systemLog.logAppend
类型:boolean
默认值:False
作用:当mongod或mongos重启时,如果为true,将日志追加到原来日志文件内容末尾;如果为false,将创建一个新的日志文件
=========================================
systemLog.timeStampFormat
类型:string
默认值:iso8601-local
作用:为日志添加时间戳。
值 描述
ctime 显示时间戳格式为:Wed Dec 31 18:17:54.811
iso8601-utc 安装iso-8601-utc格式显示:1970-01-01T00:00:00.000Z
iso8601-local 按照iso8601-local格式显示:1969-12-31T19:00:00.000-0500
systemLog.traceAllExceptions
类型:boolean
作用: 为调试打印详细信息,用于支持相关的故障排除。
systemLog.syslogFacility
类型:string
默认值:user
作用:将mongodb使用日志记录到系统日志中,如果要使用这个选项,必须开启--sysylog选项
2.3.2 processMangement 选项
- processManagement:
- fork: <boolean>
- pidFilePath: <string>
==================重点参数==================
processMangement.fork
类型:Boolean
默认值:False
作用:在前台启动Mongodb进程,如果Session窗口关闭,Mongodb进程也随之停止。不过Mongodb同时还提供了一种后台Daemon方式启动,只需要加上一个"--fork"参数即可,值得注意的是,用到了"--fork"参数就必须启用"--logpath"参数。如下所示:
- [root@localhost mongodb]# ./bin/mongod --dbpath=data/db --fork
- --fork has to be used with --logpath
- [root@localhost mongodb]# ./bin/mongod --dbpath=data/db --fork --logpath=log/mongodb.log
- all output going to: /opt/mongodb/log/mongodb.log
- forked process:
=========================================
2.3.3 net 选项
- net:
- port: <int>
- bindIp: <string>
- maxIncomingConnections: <int>
- wireObjectCheck: <boolean>
- ipv6: <boolean>
- unixDomainSocket:
- enabled: <boolean>
- pathPrefix: <string>
- filePermissions: <int>
- http:
- enabled: <boolean>
- JSONPEnabled: <boolean>
- RESTInterfaceEnabled: <boolean>
- ssl:
- sslOnNormalPorts: <boolean> # deprecated since 2.6
- mode: <string>
- PEMKeyFile: <string>
- PEMKeyPassword: <string>
- clusterFile: <string>
- clusterPassword: <string>
- CAFile: <string>
- CRLFile: <string>
- allowConnectionsWithoutCertificates: <boolean>
- allowInvalidCertificates: <boolean>
- allowInvalidHostnames: <boolean>
- disabledProtocols: <string>
- FIPSMode: <boolean>
- compression:
- compressors: <string>
==================重点参数==================
net.port
类型:integer
默认值:27017
作用:设置mongodb的监听TCP端口
net.bindIp
类型:string
作用:设置mongodb服务器监听ip地址,默认是127.0.0.1;如果监听多个ip地址,使用逗号隔开
=========================================
net.maxIncomingConnections
类型:integer
默认值:65536
作用:最大并发链接数
2.3.4 storage 选项
- storage:
- dbPath: <string>
- indexBuildRetry: <boolean>
- repairPath: <string>
- journal:
- enabled: <boolean>
- commitIntervalMs: <num>
- directoryPerDB: <boolean>
- syncPeriodSecs: <int>
- engine: <string>
- mmapv1:
- preallocDataFiles: <boolean>
- nsSize: <int>
- quota:
- enforced: <boolean>
- maxFilesPerDB: <int>
- smallFiles: <boolean>
- journal:
- debugFlags: <int>
- commitIntervalMs: <num>
- wiredTiger:
- engineConfig:
- cacheSizeGB: <number>
- journalCompressor: <string>
- directoryForIndexes: <boolean>
- collectionConfig:
- blockCompressor: <string>
- indexConfig:
- prefixCompression: <boolean>
- inMemory:
- engineConfig:
- inMemorySizeGB: <number>
==================重点参数==================
storage.dbPath
类型:string
默认值:/data/db(linux和macOS系统) ,\data\db(window系统)
作用:设置数据存储文件目录
storage.journal.enabled
类型:boolean
默认值:true(64-bit系统);false(32-bit系统)
作用:开启和关闭journal,为了保证数据文件的有效性和可恢复性;在设置了dbpath之后有效
注:在in-memory存储引擎下不可用
========================================
storage.indexBuildRetry
类型:boolean
默认值:true
作用:开启或关闭是否在mongod下次启动重建不完整的索引。
注:在in-memory存储引擎下不可用
storage.repairPath
类型:string
默认值:在dbpath下的A _tmp_repairDatabase_<num> 文件目录
作用:为进行恢复操作指定目录
注意:仅仅在MMAPv1存储引擎下可用
2.3.5 replication 选项
- replication:
- oplogSizeMB: <int>
- replSetName: <string>
- secondaryIndexPrefetch: <string>
- enableMajorityReadConcern: <boolean>
==================重点参数==================
replication.oplogSizeMB
类型:integer
作用:设置复制日志文件的大小;
replication.replSetName
类型:string
作用:副本集的名称
========================================
综上所有的重点参数,常用副本集配置文件如下:
[root@mongodb ~]# vim /mongodb/etc/mongod.conf
- systemLog:
- destination: file
- ###日志存储位置
- path: /mongodb/log/mongod.log
- logAppend: true
- storage:
- ##journal配置
- journal:
- enabled: true
- ##数据文件存储位置
- dbPath: /mongodb/data/
- ##是否一个库一个文件夹
- directoryPerDB: true
- ##数据引擎
- engine: wiredTiger
- ##WT引擎配置
- wiredTiger:
- engineConfig:
- ##WT最大使用cache(根据服务器实际情况调节)
- cacheSizeGB:
- ##是否将索引也按数据库名单独存储
- directoryForIndexes: true
- ##表压缩配置
- collectionConfig:
- blockCompressor: zlib
- ##索引配置
- indexConfig:
- prefixCompression: true
- processManagement:
- fork: true # fork and run in background
- pidFilePath: /mongodb/run/mongod.pid
- ##端口配置
- net:
- port:
- bindIp: 192.168.118.11
- # 配置副本集重要参数(使用副本集群的时候使用,单节点无需次选项)
- replication:
- oplogSizeMB:
- replSetName: rs0
mongod.conf
配置文件详解:https://www.cnblogs.com/phpandmysql/p/7763394.html
3. 启动/关闭MongoDB服务
启动、关闭MongoDB的方式有两种:
(1)通过命令mongod 直接启动
(2)编写启动脚本,通过脚本启动(推荐使用)
3.1 通过 mongod 命令启动
- 启动:
- [root@mongodb ~]# mongod -f /mongodb/etc/mongod.conf
- about to fork child process, waiting until server is ready for connections.
- forked process:
- child process started successfully, parent exiting
- 关闭:
- [root@mongodb ~]# mongod -f /mongodb/etc/mongod.conf --shutdown
- killing process with pid:
3.2 通过服务启动
(1)创建服务启动用户:
- [root@mongodb ~]# groupadd mongodb
- [root@mongodb mongodb]# useradd -r -d /mongodb/data -s /sbin/nologin -g mongodb mongodb
- [root@mongodb ~]# chown -R mongodb:root /mongodb/
(2)编写服务脚本如下:
- [root@mongodb ~]# vim /lib/systemd/system/mongod.service
- [Unit]
- Description=High-performance, schema-free document-oriented database
- After=syslog.target network.target
- [Service]
- Type=forking
- User=mongodb
- ExecStart=/mongodb/bin/mongod -f /mongodb/etc/mongod.conf
- PrivateTmp=true
- LimitNOFILE=
- TimeoutStartSec=
- [Install]
- WantedBy=multi-user.target
(3)启动与关闭
- # 启动MongoDB并开机自启
- [root@mongodb mongodb]# systemctl enable mongod ; systemctl start mongod
- Created symlink from /etc/systemd/system/multi-user.target.wants/mongod.service to /usr/lib/systemd/system/mongod.service.
- [root@mongodb mongodb]# netstat -ntplu | egrep mongod
- tcp 127.0.0.1: 0.0.0.0:* LISTEN /mongod
- # 关闭MongoDB
- [root@mongodb mongodb]# systemctl stop mongod
MongoDB 3.x 安装配置的更多相关文章
- 【MongoDB】MongoDB的下载 安装 配置及使用
windows系统 教程 1.下载地址 (官方提供根据系统位数选择对应的bit.exe下载) 由于自己win32系统不支持该官方版本,在网上又找了个 mongodb-win32-i386版本 p ...
- mongodb下载及安装配置教程【仅供参考】
1 下载 下载页面地址:https://www.mongodb.org/downloads 版本选择:电脑系统是64位的,所以我选择了 Windows 64-bit 2008 R2+ ,msi包 2 ...
- MongoDB入门,安装配置与基本CURD操作
MongoDB特点 MongoDB是NoSQL的一种,非关系型数据库,或者叫不只是关系型数据库(Not Only SQL).MongoDB采用json格式的文档存储,与Redis的key-value有 ...
- mongodb在Windows安装配置及遇到的问题、java连接测试
一.安装 1.访问mongodb的官网http://www.mongodb.org/downloads下载64bit的包,我下载的是mongodb-win32-x86_64-2008plus-ssl- ...
- Centos下MongoDB数据库的安装以及配置开机自启动(三)
最近写了一个用node来操作MongoDB完成增.删.改.查.排序.分页功能的示例,并且已经放在了服务器上地址:http://39.105.32.180:3333. 在服务器上完全可以用yum来安装管 ...
- ubuntu kylin 14.04安装配置MongoDB v2.6.1(转)
1.获取最新版本 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.1.tgz 2.解压并进入bin目录 tar zxvf mongo ...
- MongoDB Windows环境安装及配置
MongoDB一般安装 1.首先到官网(http://www.mongodb.org/downloads )下载合适的安装包,目前的最新版本为2.6 安装包有zip和msi格式的,这里推荐下载zip格 ...
- 【转载】CentOS6.5_X64下安装配置MongoDB数据库
[转载]CentOS6.5_X64下安装配置MongoDB数据库 2014-05-16 10:07:09| 分类: 默认分类|举报|字号 订阅 下载LOFTER客户端 本文转载自zhm&l ...
- 1. 初探MongoDB —— 介绍、安装和配置
一.写在前面 之前一直以来,都是使用关系型数据库.也很早就听闻,当数据量大的时候,关系型数据库使用起来会有很多问题.诸如查询数据慢,加载花费时间长等等. 也早就耳闻NOSQL(NoSQL = Not ...
随机推荐
- java中main函数怎么调用外部非static方法
使用外部方法时(不管是static还是非static),都要先new一个对象,才能使用该对象的方法. 举例如下: 测试函数(这是错误的): public class Test { public sta ...
- jQuery多重事件绑定
1. <a> a标签默认绑定了一个onclick事件,当自己再写一个onclick事件的时候,默认自己写的那个优先执行. 如下程序,先执行(123),然后再发生跳转. <!DOCTY ...
- Unity3D手游开发日记(3) - 场景加载进度条的完美方案
我以为做个进度条很简单,分分钟解决,结果折腾了一天才搞定,Unity有很多坑,要做完美需要逐一解决. 问题1:最简单的方法不能实现100%的进度 用最简单的方法来实现,不能实现100%的进度,原因是U ...
- C++堆和栈详解(转)
一.预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其 操 ...
- Codeforces Global Round 2 题解
Codeforces Global Round 2 题目链接:https://codeforces.com/contest/1119 A. Ilya and a Colorful Walk 题意: 给 ...
- php开启压缩gzip
php服务的开启压缩,节省带宽 看是否开启压缩的网站 http://www.cnblogs.com/GaZeon/p/5421906.html 找到php.ini,修改下面的 ,重启php-fpm z ...
- flask学习之解决Internal Server Error问题的方式之一
最近在学习flask web development的时候,遇到了这么一个问题,就是照着书上敲的代码,跑起来是Internal server error,由于中途学的时候为了方便,改用pycharm来 ...
- 题解【bzoj3240 [NOI2013]矩阵游戏】
挖坑2333 等我把代码写完了再写
- Nginx -- proxy_pass配置
一.proxy_pass 作用域: location 不影响浏览器地址栏的url 设置被代理server的协议和地址 协议可以为http或https 地址可以为域名或IP 二.配置规则 2.1 测试环 ...
- 「Django」rest_framework学习系列-视图
方式一 1.settings设置 INSTALLED_APPS = [ ... 'rest_framework', ] 2.views设置 from rest_framework.response i ...