在你的安装目录/bin
下,有一个叫mongod.exe
的应用程序,这个程序就是用来启动你的mongodb服务器的。
创建数据库目录
在你想要存放数据的地方,新建一个文件夹,如db
,我们推荐的数据库目录设置是:
data/
conf -->配置文件目录
mongod.conf -->配置文件
db -->数据库目录
log -->日志文件目录
mongodb.log -->日志记录文件
启动数据库
我本地是window10环境,我的mongodb服务安装在F
盘的mongodb文件夹。我的数据目录在F
的data
文件夹。
启动doc
命令,输入一下命令:
F:\>mongodb/bin
F:\mongodb\bin>mongod --path=/data/db
输出以下信息:
2016-10-20T17:11:01.839+0800 I CONTROL [initandlisten] MongoDB starting : pid=1504 port=27017 dbpath=/data/db 64-bit host=Haier-PC
2016-10-20T17:11:01.842+0800 I CONTROL [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2
2016-10-20T17:11:01.844+0800 I CONTROL [initandlisten] db version v3.0.12-47-gd57ef6a
2016-10-20T17:11:01.844+0800 I CONTROL [initandlisten] git version: d57ef6a0c5a41729977f8d535a4c8de6d0cff8ba
2016-10-20T17:11:01.844+0800 I CONTROL [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_49
2016-10-20T17:11:01.844+0800 I CONTROL [initandlisten] allocator: tcmalloc
2016-10-20T17:11:01.844+0800 I CONTROL [initandlisten] options: { storage: { dbPath: "/data/db" } }
2016-10-20T17:11:01.860+0800 I JOURNAL [initandlisten] journal dir=/data/db\journal
2016-10-20T17:11:01.862+0800 I JOURNAL [initandlisten] recover : no journal files present, no recovery needed
2016-10-20T17:11:01.971+0800 I JOURNAL [durability] Durability thread started
2016-10-20T17:11:01.972+0800 I JOURNAL [journal writer] Journal writer thread started
2016-10-20T17:11:02.186+0800 I INDEX [initandlisten] allocating new ns file /data/db\local.ns, filling with zeroes...
2016-10-20T17:11:02.553+0800 I STORAGE [FileAllocator] allocating new datafile /data/db\local.0, filling with zeroes...
2016-10-20T17:11:02.554+0800 I STORAGE [FileAllocator] creating directory /data/db\_tmp
2016-10-20T17:11:02.600+0800 I STORAGE [FileAllocator] done allocating datafile /data/db\local.0, size: 64MB, took 0.012 secs
2016-10-20T17:11:02.654+0800 I NETWORK [initandlisten] waiting for connections on port 27017
最后一行显示"waiting for connections on port 27017",表明mongodb服务器已经启动,正在27017窗口等待连接。
再查看f:/data/db
文件夹,已出现以下文件:

说明mongodb服务启动成功。
将MongoDB服务器作为Windows服务运行
像上面那样启动mongodb,发现没办法输入命令行了,这是可以采用打开多个窗口来连接,但这样就太麻烦了,解决办法就是将MongoDB服务器作为Windows服务运行。
输入以下命令:
F:\mongodb\bin>mongod --dbpath "f:\data\db" --logpath "f:\data\log\mongodb.log" --serviceName "mongodb" --serviceDisplayName "mongodb" --install
看到了如下输出:
2016-10-20T23:32:46.339+0800 I CONTROL log file "f:\data\log\mongodb.log" exists; moved to "f:\data\log\mongodb.log.2016-10-20T15-32-46".
说明mongodb服务安装成功。启动mongodb服务:
F:\mongodb\bin>net start mongodb
MongoDB 服务已经启动成功。
说明mongodb启动成功。
由于我们并没有指定mongodb服务的端口号,所以它启动在默认的27017
窗口。
打开浏览器,范围地址http://127.0.0.1:27017/
,可看到如下信息
It looks like you are trying to access MongoDB over HTTP on the native driver port.
mongodb常用启动参数
mongod.exe
常用参数如下
| 参数 | 描述 |
|---|---|
| --bind_ip | 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP |
| --logpath | 定MongoDB日志文件,注意是指定文件不是目录 |
| --logappend | 使用追加的方式写日志 |
| --dbpath | 指定数据库路径 |
| --port | 指定服务端口号,默认端口27017 |
| --serviceName | 指定服务名称 |
| --serviceDisplayName | 指定服务名称,有多个mongodb服务时执行。 |
| --install | 指定作为一个Windows服务安装。 |
mongod.exe
的启动参数,在window环境下和linux环境下并不相同
mongod.exe
是mongodb服务的启动工具。
我们可以通过mongod --help
查看mongod的所有参数说明,以下是各参数的中文解释。
基本配置参数
| 参数 | 说明 |
|---|---|
| --quiet | # 安静输出 |
| --port arg | # 指定服务端口号,默认端口27017 |
| --bind_ip arg | # 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP |
| --logpath arg | # 指定MongoDB日志文件,注意是指定文件不是目录 |
| --logappend | # 使用追加的方式写日志 |
| --pidfilepath arg | # PID File 的完整路径,如果没有设置,则没有PID文件 |
| --keyFile arg | # 集群的私钥的完整路径,只对于Replica Set 架构有效 |
| --unixSocketPrefix arg | # UNIX域套接字替代目录,(默认为 tmp) |
| --fork | # 以守护进程的方式运行MongoDB,创建服务器进程 |
| --auth | # 启用验证 |
| --cpu | # 定期显示CPU的CPU利用率和iowait |
| --dbpath arg | # 指定数据库路径 |
| --diaglog arg | # diaglog选项 0=off 1=W 2=R 3=both 7=W+some reads |
| --directoryperdb | # 设置每个数据库将被保存在一个单独的目录 |
| --journal | # 启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里 |
| --journalOptions arg | # 启用日志诊断选项 |
| --ipv6 | # 启用IPv6选项 |
| --jsonp | # 允许JSONP形式通过HTTP访问(有安全影响) |
| --maxConns arg | # 最大同时连接数 默认2000 |
| --noauth | # 不启用验证 |
| --nohttpinterface | # 关闭http接口,默认关闭27018端口访问 |
| --noprealloc | # 禁用数据文件预分配(往往影响性能) |
| --noscripting | # 禁用脚本引擎 |
| --notablescan | # 不允许表扫描 |
| --nounixsocket | # 禁用Unix套接字监听 |
| --nssize arg (=16) | # 设置信数据库.ns文件大小(MB) |
| --objcheck | # 在收到客户数据,检查的有效性, |
| --profile arg | # 档案参数 0=off 1=slow, 2=all |
| --quota | # 限制每个数据库的文件数,设置默认为8 |
| --quotaFiles arg | # number of files allower per db, requires --quota |
| --rest | # 开启简单的rest API |
| --repair | # 修复所有数据库run repair on all dbs |
| --repairpath arg | # 修复库生成的文件的目录,默认为目录名称dbpath |
| --slowms arg (=100) | # value of slow for profile and console log |
| --smallfiles | # 使用较小的默认文件 |
| --syncdelay arg (=60) | # 数据写入磁盘的时间秒数(0=never,不推荐) |
| --sysinfo | # 打印一些诊断系统信息 |
| --upgrade | # 如果需要升级数据库 |
Replicaton 参数
| 参数 | 说明 |
|---|---|
| --fastsync | # 从一个dbpath里启用从库复制服务,该dbpath的数据库是主库的快照,可用于快速启用同步 |
| --autoresync | # 如果从库与主库同步数据差得多,自动重新同步, |
| --oplogSize arg | # 设置oplog的大小(MB) |
主/从参数
| 参数 | 说明 |
|---|---|
| --master | # 主库模式 |
| --slave | # 从库模式 |
| --source arg | # 从库 端口号 |
| --only arg | # 指定单一的数据库复制 |
| --slavedelay arg | # 设置从库同步主库的延迟时间 |
Replica set(副本集)选项:
| 参数 | 说明 |
|---|---|
| --replSet arg | # 设置副本集名称 |
Sharding(分片)选项
| --configsvr | # 声明这是一个集群的config服务,默认端口27019,默认目录/data/configdb |
| --shardsvr | # 声明这是一个集群的分片,默认端口27018 |
| --noMoveParanoia | # 关闭偏执为moveChunk数据保存 |
示例
./mongod -shardsvr -replSet shard1 -port 16161 -dbpath data/mongodb/data/shard1a -oplogSize 100 -logpath /data/mongodb/logs/shard1a.log -logappend -fork -rest
上述参数都可以写入 mongod.conf 配置文档里例如:
dbpath = /data/mongodb
logpath = /data/mongodb/mongodb.log
logappend = true
port = 27017
fork = true
auth = true




