MongoDB数据库安装

MongoDB官方下载地址:https://www.mongodb.com/download-center

首先需要根据Windows版本选择正确的MongoDB版本进行安装,可以在命令行中输入以下指令检查Windows版本:

wmic os get osarchitecture

32 位版本的 MongoDB 只支持 2G 以下的数据库,只适用于测试及评估。

点击下载下来的安装文件进行MongoDB数据库安装,如:mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi

安装完成后在通过命令行跳转至MongoDB安装目录,输入以下指令检查是否安装成功

mongod -v

MongoDB需要创建一个目录来保存所有的数据文件,默认情况下MongoDB的数据目录是C:\data\db\(见上方截图),所以需要在C盘下创建对应的文件夹,也可以通过命令行设置

MongoDB的数据目录

mongod --dbpath "d:\mongodb\data"

控制台输出会显示 waiting for connections 消息,这表示 mongod 进程已经成功运行。

启动MongoDB有2种方式,一是直接指定配置参数,二是指定配置文件

  1. 直接指定配置参数

    例如:

    mongod --dbpath "d:\mongodb\data"

  2. 指定配置文件

    由于官方下载的安装包中没有默认的配置文件,若想使用配置文件只能自己创建,创建配置文件时确保使用ASCII编码格式,Mongod 实例不支持配置文件使用非 ASCII 编码格式,包括UTF-8。自2.6版本以后MongoDB使用YAML文件格式,注意:YAML 不支持制表符缩进︰ 用空格代替。

    例如:

    mongod --config d:\mongodb\mongodb.conf

 

配置参数详解:

 mongodb 3.0之后配置文件采用YAML格式,这种格式非常简单,使用<key>:<value>表示,开头使用"空格"作为缩进。需要注意的是,":"之后有value的话,需要紧跟一个空格,如果key只是表示层级,则无需在":"后增加空格(比如:systemLog:后面既不需要空格)。按照层级,每行4个空格缩进,第二级则8个空格,依次轮推,顶层则不需要空格缩进

1. systemLog

systemLog.verbosity

integer

日志文件输出的级别,越大级别越低。

systemLog.quite

boolean

在quite模式下会限制输出信息:

数据库命令输出,副本集活动,连接接受事件,连接关闭事件。

systemLog.traceAllExceptions

string

打印verbose信息来调试,用来记录证额外的异常日志。

systemLog.syslogFacility

string,默认为user

指定syslog日志信息的设备级别。需要指定--syslog来使用这个选项。

systemLog.path string

发送所有的诊断信息日志,默认重启后会覆盖。

systemLog.logAppend

boolean

是否启用追加日志。

systemLog.logRotate

string

V3.0.0版本中新特性,默认值为rename

使用rename,mongod或mongos通过在文件名称末尾添加UTC(GMT)时间戳的方式重命名当前的日志文件,然后打开新的日志文件,关闭之前旧的日志文件,并发送所有新的日志信息到新的日志文件中。

reopen 关闭并重新打开日志文件遵循典型的Linux/Unix日志切换行为。当使用Linux/Unix logrotate工具时,使用reopen避免日志丢失。

如果指定reopen时,也必须同时使用—logappend

 

systemLog.destination

string

指定一个文件或syslog。如果指定为文件,必须同时指定systemLog.path

systemLog.timeStampFormat

string,默认为iso8601-local

日志信息中的时间戳格式:

ctime,iso8601-utc,iso8601-local

 

2. processManagement

processManagement.pidFilePath

string

指定进程的ID,与--fork配合使用,不指定则不会创建。

processManagement.fork

boolean,默认为false

是守护进程在后台运行。

 

3. net

net.port

interger,默认为27017

mongodb实例监听的端口号。

net.bindIp

string,2.6版本默认为127.0.0.1

指定mongodb实例绑定的ip,为了绑定多个ip,可以使用逗号分隔。

net.maxIncomingConnections

integer 默认为1000000

mongodb实例接受的最多连接数,如果高于操作系统接受的最大线程数,设置无效。

net.wireObjectCheck

boolean,默认为true

检查文档的有效性。会稍微影响性能。

net.http.enabled

boolean,默认为false

打开http端口,会导致更多的不安全因素。

net.unixDomainSocket.enabled

boolean,默认为false

停止UNIX domain socket监听。

mongodb实例会一直监听UNIX

socket,除非net.unixDomainSocket.enabled设置为true,bindIp没有设置,bindIp没有默认指定为127.0.0.1。

net.unixDomainSocket.pathPrefix

string,默认为/tmp

unix Socket所在的路径。

net.ipv6

boolean,默认为false

打开IPV6功能,默认为关闭的。

net.http.JSONPEnabled

boolean,默认为false

运行json访问http端口,打开会导致更多的不安全因素。

net.http.RESTInterfaceEnabled

boolean,默认为false

即使http接口选项关闭,打开也会暴露http接口,会导致更多的不安全因素。

 

4. security

security.keyFile

string

指定分片集或副本集成员之间身份验证的key文件存储位置。

security.clusterAuthMode

string

集群认证中利用到这个模式,如果使用x.509安全机制,可以在这里指定。

keyFile,sendKeyFile,sendX509,x509

默认的mongodb发行版是不支持ssl的,可以使用专业版的或重新自行编译mongodb。

security.authorization

string,默认为disabled

打开访问数据库和进行操作的用户角色认证。

enabled,disabled

 

5. operationProfiling

operationProfiling.slowOpThresholdMs

integer,默认100

指定慢查询时间,单位毫秒,如果打开功能,则向system.profile集合写入数据。

operationProfiling.mode

integer,默认0

改变分析日志输出级别。

0,1,2,分别对应关闭,仅打开慢查询,记录所有操作。

 

6. storage

storage.dbPath

string

指定数据文件的路径。

storage.directoryPerDB

boolean,默认关闭

指定存储每个数据库文件到单独的数据目录。如果在一个已存在的系统使用该选项,需要事先把存在的数据文件移动到目录。

storage.indexBuildRetry

boolean,默认为true

指定数据库在索引建立过程中停止,重启后是否重新建立索引。

storage.preallocDataFiles

boolean,默认true

是否预先分片好数据文件。

storage.nsSize

integer,默认16

指定命名空间的大小,即.ns后缀的文件。最大为2047MB,16M文件可以提供大约24000个命名空间。

storage.quota.enforced

boolean,默认false

限制每个数据库的数据文件数目。可以通过maxFilesPerDB调整数目。

storage.quota.maxFilesPerDB

integer,默认为8

限制每个数据库的数据文件数目。

storage.smallFiles

boolean,默认为false

限制mongodb数据文件大小为512MB,减小journal文件从1G到128M,适用于有很多数量小的数据文件。

storage.syncPeriodSecs

number,默认60

mongodb文件刷新频率,尽量不要在生产环境下修改。

storage.repairPath

string,默认为指定dbpath下的_tmp目录。

指定包含数据文件的根目录,进行--repair操作。

storage.journal.enabled

boolean,默认64bit为true,32bit为false

记录操作日志,防止数据丢失。

storage.journal.debugFlags

integer

提供数据库在非正常关闭下的功能测试。

storage.journal.commitIntervalMs

number,默认为100或30

journal操作的最大间隔时间。可以是2-300ms之间的值,低的值有助于持久化,但是会增加磁盘的额外负担。

如果journal和数据文件在同一磁盘上,默认为100ms。如果在不同的磁盘上为30ms。

如果强制mongod提交日志文件,可以指定j:true,指定后,时间变为原来的三分之一。

 

7. replication

replication.oplogSizeMB

integer,默认为磁盘的5%

指定oplog的最大尺寸。对于已经建立过oplog.rs的数据库,指定无效。

replication.replSetName

string

指定副本集的名称。

replication.secondaryIndexPrefetch

string,默认为all

指定副本集成员在接受oplog之前是否加载索引到内存。默认会加载所有的索引到内存。

none,不加载;all,加载所有;_id_only,仅加载_id。

 

8. sharding

sharding.clusterRole

string

指定分片集的mongodb角色。

configsvr,配置服务器,端口27019;shardsvr,分片实例,端口27018。

sharding.archiveMovedChunks

integer

在块移动过程中,该选项强制mongodb实例保存所有移动的文档到moveChunk目录。

 

9. auditLog

auditLog.destination

string

syslog,以json格式保存身份验证到syslog,windows下不可用,serverity级别为info,facility级别为user。

console,以json格式输出信息到标准输出。

file,以json格式输出信息到文件。

auditLog.format

string

指定输出文件的格式

JSON,输出json格式文件;BSON,输出bson二进制格式文件。

auditLog.path

string

如果--auditDestination的值为file,则该选项指定文件路径。

auditLog.filter

document

指定过滤系统身份验证的格式为:

{ atype : <expression> }

{ atype: <expression>, "param.db": <database> }

 

10. snmp

snmp.subagent

boolean

运行SNMP为一个子代理。

snmp.master

boolean

运行SNMP为一个主进程。

 

仅mongos选项

replication.localPingThresholdMs

integer,默认15

当客户端选定副本集进行读操作时受影响。

sharding.autoSplit

boolean

防止mongos自动在一个分片集合中插入元数据。

因为任何的mongos都可以创建一个分离,如果打开该选项,将会导致分片不平衡,需要谨慎使用。

sharding.configDB

string

指定配置数据库。可以使用逗号分隔一到三个服务器。

如果处于不同的位置,需要指定最近的一个。

不能移除配置服务器,即使不可用或者离线了。

sharding.chunkSize

integer,默认为64

每个块的大小。64MB是理想大小,小的会导致不能在不同节点间高效移动。

仅仅在初始化时有效。

 

参考示例:

systemLog:

quiet: true

#syslogFacility: <string>

path: D:\mongodb\logs\mongodb.log

logAppend: true

destination: file

timeStampFormat: "iso8601-utc"

storage:

dbPath: D:\mongodb\data

indexBuildRetry: true

#repairPath: <string>

journal:

enabled: true

directoryPerDB: true

#syncPeriodSecs: 60

engine: wiredTiger

wiredTiger:

engineConfig:

cacheSizeGB: 10

directoryForIndexes: true

collectionConfig:

blockCompressor: zlib

indexConfig:

prefixCompression: true

#processManagement:

#fork: true

#pidFilePath: D:\mongodb\run\mongodb.pid

net:

port: 27017

#bindIp: 127.0.0.1

maxIncomingConnections: 65536

wireObjectCheck: true

ipv6: false

http:

enabled: false

JSONPEnabled: false

RESTInterfaceEnabled: false

#ssl:

#mode: <string>

#PEMKeyFile: <string>

#PEMKeyPassword: <string>

#security:

#keyFile: D:\mongodb\keyfile

#clusterAuthMode: keyFile

#authorization: disabled

operationProfiling:

slowOpThresholdMs: 100

mode: slowOp

replication:

oplogSizeMB: 50

replSetName: reptestname

secondaryIndexPrefetch: all

#enableMajorityReadConcern: <boolean>

#sharding:

#clusterRole: <string>

#archiveMovedChunks: <boolean>

MongoDB学习笔记——数据库安装及配置的更多相关文章

  1. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  2. 菜鸟的《Linux程序设计》学习——MySQL数据库安装、配置及基本操作

    1. MySQL数据库: 在涉及到一些大型的Web系统或者嵌入式软件的开发时,都少不了用数据库来管理数据.在Windows操作系统下,使用过各种各样的数据库,如:sqlServer.Oracle.My ...

  3. Vue学习笔记-VSCode安装与配置

    一  使用环境: windows 7 64位操作系统 二  VSCode安装与配置  1.下载: https://code.visualstudio.com 直接点击即可. 2. 点击按装程序,默认安 ...

  4. MongoDB 学习笔记一 安装以及基础命令

    一.MongoDB安装配置 1.获取最新版本号: wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz 2.解压缩就可 ...

  5. MongoDB学习笔记——数据库的创建与初始

    Part1:MongoDB与SQL的概念对比 图片来源--菜鸟教程 Part2:MongoDB安装地址 直接下载地址:戳这里 备用地址:戳这里 通过备用地址(官网)下载时,要注意下面这个地方 Part ...

  6. cakephp2.7的学习笔记1 —— 安装与配置

    CakePHP2.7的安装 下载 https://github.com/cakephp/cakephp/releases 解压后扔进你的www目录就可以直接访问 按照提示,修改这两项配置,替换成你喜欢 ...

  7. MongoDB学习笔记——数据库操作

    使用use数据库名称来创建数据库,如果该数据库已经存在则返回这个数据库 语句格式:use DATABASE_NAME >use mynewdb switched to db mynewdb 使用 ...

  8. rabbitmq学习笔记1 安装和配置

    环境 OS: CentOS Linux release 7.1.1503 (Core) kernel:3.10.0-229.el7.x86_64   安装 参考:http://www.rabbitmq ...

  9. MongoDB学习笔记一:MongoDB的下载和安装

    MongoDB学习笔记一:MongoDB的下载和安装 趁着这几天比較空暇,准备学习一下MongoDB数据库.今天就简单的学习了一些MongoDB的下载和安装.并创建了存储MongoDB的数据仓库. 将 ...

随机推荐

  1. 表上的DELETE操作

    在今天的文章里,我想给你快速展示下当我们从表里删除记录时,在SQL Server里发生了什么.首先我们来创建一个简单的表,在8KB的页上刚好能插入4条记录. -- Create a simple ta ...

  2. ASP.NET在不同情况下实现单点登陆(SSO)的方法

    第一种:同主域但不同子域之间实现单点登陆 Form验证其实是基于身份cookie的验证.客户登陆后,生成一个包含用户身份信息(包含一个ticket)的cookie,这个cookie的名字就是在web. ...

  3. Qt之QAbstractItemView右键菜单

    一.功能概述 说起右键菜单,之前Qt之自定义QLineEdit右键菜单这篇文章中我已经讲述过3种右键菜单的实现方式,今儿也是在啰嗦一下,针对QListWidget类在定制一下右键菜单,我使用的具体方式 ...

  4. 非聚集索引中的临界点(Tipping Point)

    什么是临界点? 注意,我要说的问题是非聚集索引的执行计划从Seek+Lookup变成Table/Clustered Index Scan的临界点.SQL Server的访问数据的IO最小单元是页. 我 ...

  5. Spring总结——AOP、JDBC和事务的总结

    1.上一次总结了 Spring 的核心三大组件(Core,Beans,Context),今天总结的 AOP.JDBC和事务都可以看成是核心三大组件的应用. 其中 Spring 的事务管理又以 AOP ...

  6. Google判断广告点击作弊的几种方式和数据

     Google判断广告点击作弊的几种方式和数据. 作弊广告点击的CTR数据太高网上有研究说如果CTR值大于了10%的站被干掉的可能性很高,他们会被单独拿出来分析.一般来说低于6-7%的CTR是安全红线 ...

  7. csharp: Procedure with DAO(Data Access Object) and DAL(Data Access Layer)

    sql script code: CREATE TABLE DuCardType ( CardTypeId INT IDENTITY(1,1) PRIMARY KEY, CardTypeName NV ...

  8. YAML初探

    http://www.cnblogs.com/chwkai/archive/2009/03/01/249924.html 1 概念YAML是一种人们可以轻松阅读的数据序列化格式,并且它非常适合对动态编 ...

  9. PhpStorm的open in browser怎么修改端口和相对路径

    昨天下班后,在电脑安装phpstorm.xampp安装正常,但是在phpstorm上直接打开网站文件一直报错,一直报错502.我感觉好奇快,怎么会报错呢.后面我用hbuild打开文件,在浏览器显示正常 ...

  10. centos 7安装mysql报错-bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: No such file or directory

    [root@localhost mysql]# ./scripts/mysql_install_db  --user=mysql -bash: ./scripts/mysql_install_db: ...