一、Windows安装

1.1 下载

MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址: https://www.mongodb.com/download-center/community

注意:在 MongoDB 2.2 版本后已经不再支持 Windows XP 系统。最新版本也已经没有了 32 位系统的安装文件。

1.MongoDB for Windows 64-bit 适合 64 位的 Windows Server 2008 R2, Windows 7 , 及最新版本的 Window 系统。
2.MongoDB for Windows 32-bit 适合 32 位的 Window 系统及最新的 Windows Vista。 32 位系统上 MongoDB 的数据库最大为 2GB。
3.MongoDB for Windows 64-bit Legacy 适合 64 位的 Windows Vista, Windows Server 2003, 及 Windows Server 2008 。

1.2 运行 MongoDB 服务器

下载好zip安装包,解压后,你必须从 MongoDB 目录的 bin 目录中执行 mongod.exe 文件。

.\bin\mongod.exe --dbpath .\data\db --logpath .\logs\mongo.log --logappend

--dbpath设置数据存储目录,默认为\data\db,C:\data\db
--logpath指定日志输出文件,默认情况是输出到控制台,必须是一个文件,不能是目录。
--logappend更改日志输出到文件的方式为追加模式,默认情况为覆盖。

如果执行成功,会输出如下信息:

1.3 连接MongoDB

我们可以在命令窗口中运行 mongo.exe 命令即可连接上 MongoDB,执行如下命令:

.\bin\mongo.exe localhost:27017

二、linux下安装(单节点)

2.1 下载

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

2.2 解压

tar -zxvf soft/mongodb-linux-x86_64-3.0.8.tgz

解压完成后获得mongodb-linux-x86_64-3.08目录

2.3 文件加更名

将解压后的目录名改为mongodb

mv mongodb-linux-x86_64-3.0.8 mongodb

2.4 创建目录

mkdir data
mkdir logs
mkdir data/mongodb
touch logs/mongodb.log

2.5 创建启动配置文件

mkdir conf
touch conf/mongodb.conf

编辑mongodb.conf文件

vi conf/mongodb.conf

添加如下内容:

1
2
3
4
5
6
7
8
port=27017
dbpath=/opt/mongodb/data/mongodb
storageEngine=wiredTiger
wiredTigerCacheSizeGB=1
wiredTigerJournalCompressor=zlib
logpath=/opt/mongodb/logs/mongodb.log
logappend=true
fork=true

解释:
port:mongodb端口号,默认是27017
dbpath:mongodb数据存储路径,就是之前创建的data/mongodb目录
storageEngine:存储引擎类型
wiredTigerCacheSizeGB:工作集大小(使用内存大小),根据需要设置,单位GB
wiredTigerJournalCompressor:文件压缩方式
logpath:日志存储路径,是一个文件的路径,这里是之前的logs/mongodb.log文件
logappend:日志已在文件末尾追加的方式存储
fork:后台运行

2.6 启动mongodb

在bin目录下执行
./mongod -f /opt/mongodb/conf/mongodb.conf
出现started successfully说明启动成功

三、mongod.exe参数详解

3.1 通用参数选项

参数介绍
-h/--help显示帮助信息
--version显示当前mongo的版本信息
-f/--config arg使用配置文件指定启动参数
-v/--verbose使用冗长的信息,一般不用。
--quiet安静的输出
--port arg指定端口号,默认为27017
--bind_ip arg指定监听的ip地址,使用逗号分隔ip,比如ip1,ip2。默认情况下监听搜索ip,即0.0.0.0。
--ipv6启动ipv6的支持,默认不支持ipv6的访问。
--maxConns arg指定最大的并发连接数,默认情况为1000000。
--logpath arg指定日志输出文件,默认情况是输出到控制台,必须是一个文件,不能是目录。
--logappend更改日志输出到文件的方式为追加模式,默认情况为覆盖。
--logRotate arg设置日志轮询行为,参数只能是rename或者是reopen。
--timeStampFormat arg设置希望的log日期格式,参数必须是iso8601-utc或者iso8601-local两者之一。
--pidfilepath arg设置pid的存储文件,默认不设置。如果不设置,那么不保存pid。
--keyFile arg如果开启集群的验证,那么指定私钥文件位置
--setParameter arg设置参数
--httpinterface启用http界面
--clusterAuthMode arg集群验证类型
--auth使用安全模式启动MongoDB,启用后需要输入用户名和密码,默认情况下不是启用的。
--noauth不是安全模式启动
--jsonp允许JSONP通过http访问(这个会存在安全隐患)
--rest开启简答的api
--slowms arg是否是否启动概要文件和日志输出
--profile arg0=off,1=slow,2=all.
--cpu定期的显示cpu和io的使用率
--sysinfo打印诊断相关的系统信息
--noIndexBuildRetry不重构
--noscripting关闭scripting引擎
--notablescan不允许全collection扫描

3.2 windows服务控制管理器参数

参数介绍
--install注册windows服务
--remove移除window服务
--reinstall重新注册windows服务
--serviceName argwindows服务名称
--serviceDisplayName argwindows服务显示命令
--serviceDescription argwidnows服务描述信息
--serviceUser arg服务执行用户名
--servicePassword arg服务执行用户密码

3.3 复制参数

参数介绍
--oplogSize arg用于复制op日志的大小,单位为MB。默认情况为磁盘空间的5%,当然如果允许越高越好。

3.4 主从配置参数(现在使用replicate参数替代)

参数介绍
--mastermaster节点
--slaveslave节点
--source arg当节点为slave节点的时候,指定master节点的连接(server_ip:port)
--only arg当节点为slave节点的时候,指定一个单独的数据库进行主从复制。
--slavedelay arg当slave请求master的op操作时候,指定延期时间,单位秒。
--autoresync如果slave节点的数据落后master数据10s,自动同步。这个要求--oplogSize比较大。默认是10分钟至少更新一次。

3.5 副本集参数

参数介绍
--replSet arg副本集名称,所有的副本集必须有相同的名称。
--replIndexPrefetch arg指定指数预期行为

3.6 分片参数

参数介绍
--configsvr声明这是一个集群的config服务,默认端口27019,默认目录/data/configdb
--shardsvr声明这是一个集群的分片,默认端口27018

3.7 SSL参数

参数介绍
--sslOnNormalPorts使用ssl的端口号
--sslMode arg设置ssl的操作模式(disabled、allowSSL、preferSSL、requireSSL)
--sslPEMKeyFile arg设置ssl的PEM文件
--sslPEMKeyPassword arg设置PEM文件密码
--sslClusterFile arg内部的ssl验证key文件
--sslClusterPassword arg内部的校验密码
--sslCAFile argxx
--sslCRLFile argxx
--sslWeakCertificateValidation允许连接
--sslAllowConnectionsWithoutCertificatesxxx
--sslAllowInvalidHostnamesxxx
--sslAllowInvalidCertificatesxxx
--sslFIPSModexxx

3.8 存储参数

参数介绍
--storageEngine arg设置存储引擎
--dbpath arg设置数据存储目录,默认为\data\db,C:\data\db|
--directoryperdb每个数据库保存到不同的目录
--noprealloc不允许disrectoryperdb
--nssize arg(=16)  .ns文件的大小对于一个新的数据库,单位MB
--quota限制每个数据库的文件个数,默认为8
--quotaFiles arg每个数据库文件的个数,当启用--quota的时候有用,默认情况为8
--smallfiles使用较小的文件
--syncdelay arg同步间隔时间,0表示不同步。单位秒。
--upgrade如果需要,升级
--repair修复所有的数据库
--repairpath arg指定要修复的数据库路径
--journalenable journaling
--nojournalxxx
--journalOptions argxxx
--journalCommitInterval argxxx

四、增加用户密码

终端输入mongo,首先添加管理用户,

show dbs // 显示所有的数据库
use admin // 切换到admin
db.createUser({user:'root',pwd:'19920503',roles:['userAdminAnyDatabase']})
db.auth('root','19920503')

再切换数据库,添加用户,

use test
db.createUser({user:'root',pwd:'19920503',roles:['readWrite']})