一、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']})