一、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 | port=27017 |
解释:
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 arg | 0=off,1=slow,2=all. |
| --cpu | 定期的显示cpu和io的使用率 |
| --sysinfo | 打印诊断相关的系统信息 |
| --noIndexBuildRetry | 不重构 |
| --noscripting | 关闭scripting引擎 |
| --notablescan | 不允许全collection扫描 |
3.2 windows服务控制管理器参数
| 参数 | 介绍 |
|---|---|
| --install | 注册windows服务 |
| --remove | 移除window服务 |
| --reinstall | 重新注册windows服务 |
| --serviceName arg | windows服务名称 |
| --serviceDisplayName arg | windows服务显示命令 |
| --serviceDescription arg | widnows服务描述信息 |
| --serviceUser arg | 服务执行用户名 |
| --servicePassword arg | 服务执行用户密码 |
3.3 复制参数
| 参数 | 介绍 |
|---|---|
| --oplogSize arg | 用于复制op日志的大小,单位为MB。默认情况为磁盘空间的5%,当然如果允许越高越好。 |
3.4 主从配置参数(现在使用replicate参数替代)
| 参数 | 介绍 |
|---|---|
| --master | master节点 |
| --slave | slave节点 |
| --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 arg | xx |
| --sslCRLFile arg | xx |
| --sslWeakCertificateValidation | 允许连接 |
| --sslAllowConnectionsWithoutCertificates | xxx |
| --sslAllowInvalidHostnames | xxx |
| --sslAllowInvalidCertificates | xxx |
| --sslFIPSMode | xxx |
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 | 指定要修复的数据库路径 |
| --journal | enable journaling |
| --nojournal | xxx |
| --journalOptions arg | xxx |
| --journalCommitInterval arg | xxx |
四、增加用户密码
终端输入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']})






