安装部分
1. 安装包
1.1 mongodb-org
可以自动安装以下的四个包
1.2 mongodb-org-server
mongod进程和配置文件,启动脚本
1.3 mongodb-org-mongos
mongos进程
1.4 mongodb-org-shell
mongo shell
1.5 mongodb-org-tools
其他mongodb工具,mongoimport,mongoexport,mongodump,mongrestore,mongofiles,bsondump,mongooplog,mongoperf,mongostat,mongotop,(mongosniff)
2. 脚本文件
2.1 /etc/rc.d/init.d/mongod
启动脚本
2.2 /etc/mongod.conf
配置文件
3. 安装mongodb
3.1 配置yum源
/etc/yum.repos.d/mongodb.repo -> [mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1</div>
如果是32bit系统
[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/ gpgcheck=0 enabled=1</div>
3.2 安装mongodb版本
sudo yum install mongodb-org</div>
安装指定版本mongodb
yum install mongodb-org-2.6.1 mongodb-org-server-2.6.1 mongodb-org-shell-2.6.1 mongodb-org-mongos-2.6.1 mongodb-org-tools-2.6.1
3.3 为了避免无意识的升级
/etc/yum.conf -> exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools</div> 4. 运行mongodb
注意mongodb的默认端口和SELinux服务的状态。
数据文件目录:/var/lib/mongo ,日志文件目录: /var/log/mongo。
改变/var/lib/mongo和/var/log/mongo权限为mongodb的运行者。
4.1 启动mongodb
sudo service mongod start</div>
4.2 证实mongodb启动成功
检查mongodb日志文件/var/log/mongodb/mongod.log。
把mongodb加入开机启动服务:
sudo chkconfig mongod on</div>
4.3 关闭mongodb服务
sudo service mongod stop</div>
4.4 重启mongodb服务
sudo service mongod restart</div>
4.5 开始使用mongodb
配置文件部分
MongoDB引入一个YAML-based格式的配置文件。2.4版本以前的仍然兼容。
我的mongodb配置文件:
systemLog: destination: file path: "/var/log/mongo/mongod.log" quiet: true logAppend: true timeStampFormat: iso8601-utc storage: dbPath: "/var/lib/mongo" directoryPerDB: true indexBuildRetry: false preallocDataFiles: true nsSize: 16 # quota: # enforced: false # maxFilesPerDB: 8 smallFiles: false syncPeriodSecs: 60 # repairPath: "/var/lib/mongo/_tmp" journal: enabled: true # debugFlags: 1 commitIntervalMs: 100 processManagement: fork: true pidFilePath: "/var/run/mongodb/mongod.pid" net: # bindIp: 192.168.11.52 port: 27017 http: enabled: true RESTInterfaceEnabled: false # ssl: # mode: "requireSSL" # PEMKeyFile: "/etc/ssl/mongodb.pem" operationProfiling: slowOpThresholdMs: 100 mode: "slowOp" security: keyFile: "/var/lib/mongo/mongodb-keyfile" clusterAuthMode: "keyFile" authorization: "disabled" replication: oplogSizeMB: 50 replSetName: "repl_test" secondaryIndexPrefetch: "all"</div>
设置选项:
1. systemLog
systemLog.verbosity</div>
integer
日志文件输出的级别,越大级别越低。
systemLog.quite</div>
boolean
在quite模式下会限制输出信息:
数据库命令输出,副本集活动,连接接受事件,连接关闭事件。
systemLog.traceAllExceptions</div>
string
打印verbose信息来调试,用来记录证额外的异常日志。
systemLog.syslogFacility</div>
string,默认为user
指定syslog日志信息的设备级别。需要指定--syslog来使用这个选项。
systemLog.path string</div>
发送所有的诊断信息日志,默认重启后会覆盖。
systemLog.logAppend</div>
boolean
是否启用追加日志。
systemLog.destination</div>
string
指定一个文件或syslog。如果指定为文件,必须同时指定systemLog.path
systemLog.timeStampFormat</div>
string,默认为iso8601-local
日志信息中的时间戳格式:
ctime,iso8601-utc,iso8601-local</div>
2. processManagement
processManagement.pidFilePath</div>
string
指定进程的ID,与--fork配合使用,不指定则不会创建。
processManagement.fork</div>
boolean,默认为false
是守护进程在后台运行。
3. net
net.port</div>
interger,默认为27017
mongodb实例监听的端口号。
net.bindIp</div>
string,2.6版本默认为127.0.0.1
指定mongodb实例绑定的ip,为了绑定多个ip,可以使用逗号分隔。
net.maxIncomingConnections</div>
integer 默认为1000000
mongodb实例接受的最多连接数,如果高于操作系统接受的最大线程数,设置无效。
net.wireObjectCheck</div>
boolean,默认为true
检查文档的有效性。会稍微影响性能。
net.http.enabled</div>
boolean,默认为false
打开http端口,会导致更多的不安全因素。
net.unixDomainSocket.enabled</div>
boolean,默认为false
停止UNIX domain socket监听。
mongodb实例会一直监听UNIX
socket,除非net.unixDomainSocket.enabled设置为true,bindIp没有设置,bindIp没有默认指定为127.0.0.1。
net.unixDomainSocket.pathPrefix</div>
string,默认为/tmp
unix Socket所在的路径。
net.ipv6</div>
boolean,默认为false
打开IPV6功能,默认为关闭的。
net.http.JSONPEnabled</div>
boolean,默认为false
运行json访问http端口,打开会导致更多的不安全因素。
net.http.RESTInterface