mongoDB启动参数备忘
2019.07更新:
mongodb的配置文件已经变成yaml格式,之前的老方法不推荐使用。
systemLog: # verbosity: 0 #日志等级,0-5,默认0 # quiet: false #限制日志输出, # traceAllExceptions: true #详细错误日志 # syslogFacility: user #记录到操作系统的日志级别,指定的值必须是操作系统支持的,并且要以--syslog启动 path: /Users/mhq/projects/db/mongo/logs/log.txt #日志路径。 logAppend: false #启动时,日志追加在已有日志文件内还是备份旧日志后,创建新文件记录日志, 默认false logRotate: rename #rename/reopen。rename,重命名旧日志文件,创建新文件记录;reopen,重新打开旧日志记录,需logAppend为true destination: file #日志输出方式。file/syslog,如果是file,需指定path,默认是输出到标准输出流中 timeStampFormat: iso8601-local #日志日期格式。ctime/iso8601-utc/iso8601-local, 默认iso8601-local # component: #各组件的日志级别 # accessControl: # verbosity: <int> # command: # verbosity: <int> processManagement: fork: true #以守护进程运行 默认false # pidFilePath: <string> #PID 文件位置 net: port: 27017 #监听端口,默认27017 bindIp: 127.0.0.1 #绑定监听的ip,deb和rpm包里有默认的配置文件(/etc/mongod.conf)里面默认配置为127.0.0.1,若不限制IP,务必确保认证安全,多个Ip用逗号分隔 maxIncomingConnections: 65536 #最大连接数,可接受的连接数还受限于操作系统配置的最大连接数 wireObjectCheck: true #校验客户端的请求,防止错误的或无效BSON插入,多层文档嵌套的对象会有轻微性能影响,默认true ipv6: false #是否启用ipv6,3.0以上版本始终开启 unixDomainSocket: #unix socket监听,仅适用于基于unix的系统 enabled: false #默认true pathPrefix: /tmp #路径前缀,默认/temp filePermissions: 0700 #文件权限 默认0700 http: #警告 确保生产环境禁用HTTP status接口、REST API以及JSON API以防止数据暴露和漏洞攻击 enabled: false #是否启用HTTP接口、启用会增加网络暴露。3.2版本后停止使用HTTP interface JSONPEnabled: false #JSONP的HTTP接口 RESTInterfaceEnabled: false #REST API接口 # ssl: #估计用不到,所以没有自己看 # sslOnNormalPorts: <boolean> # deprecated since 2.6 # mode: <string> # PEMKeyFile: <string> # PEMKeyPassword: <string> # clusterFile: <string> # clusterPassword: <string> # CAFile: <string> # CRLFile: <string> # allowConnectionsWithoutCertificates: <boolean> # allowInvalidCertificates: <boolean> # allowInvalidHostnames: <boolean> # disabledProtocols: <string> # FIPSMode: <boolean> security: authorization: enabled # enabled/disabled #开启客户端认证 javascriptEnabled: true #启用或禁用服务器端JavaScript执行 # keyFile: <string> #密钥路径 # clusterAuthMode: <string> #集群认证方式 # enableEncryption: <boolean> # encryptionCipherMode: <string> # encryptionKeyFile: <string> # kmip: # keyIdentifier: <string> # rotateMasterKey: <boolean> # serverName: <string> # port: <string> # clientCertificateFile: <string> # clientCertificatePassword: <string> # serverCAFile: <string> # sasl: # hostName: <string> # serviceName: <string> # saslauthdSocketPath: <string> # setParameter: #设置参数 # <parameter1>: <value1> # <parameter2>: <value2> storage: dbPath: /Users/mhq/projects/db/mongo/test/ #数据库,默认/data/db,如果使用软件包管理安装的查看/etc/mongod.conf indexBuildRetry: true #重启时,重建不完整的索引 # repairPath: <string> #--repair操作时的临时工作目录,默认为dbPath下的一个_tmp_repairDatabase_<num>的目录 journal: enabled: true #启动journal,64位系统默认开启,32位默认关闭 # commitIntervalMs: <num> #journal操作的最大时间间隔,默认100或30 directoryPerDB: false #使用单独的目录来存储每个数据库的数据,默认false,如果需要更改,要备份数据,删除掉dbPath下的文件,重建后导入数据 # syncPeriodSecs: 60 #使用fsync来将数据写入磁盘的延迟时间量,建议使用默认值 engine: wiredTiger #存储引擎,mmapv1/wiredTiger/inMemory 默认wiredTiger # mmapv1: # preallocDataFiles: <boolean> # nsSize: <int> # quota: # enforced: <boolean> # maxFilesPerDB: <int> # smallFiles: <boolean> # journal: # debugFlags: <int> # commitIntervalMs: <num> # wiredTiger: # engineConfig: # cacheSizeGB: <number> #缓存大小 # journalCompressor: <string> #数据压缩格式 none/snappy/zlib # directoryForIndexes: <boolean> #将索引和集合存储在单独的子目录下,默认false # collectionConfig: # blockCompressor: <string> #集合数据压缩格式 # indexConfig: # prefixCompression: <boolean> #启用索引的前缀压缩 # inMemory: # engineConfig: # inMemorySizeGB: <number> operationProfiling: #性能分析 slowOpThresholdMs: 100 #认定为查询速度缓慢的时间阈值,超过该时间的查询即为缓慢查询,会被记录到日志中, 默认100 mode: off #operationProfiling模式 off/slowOp/all 默认off # replication: #复制集相关 # oplogSizeMB: <int> # replSetName: <string> # secondaryIndexPrefetch: <string> # enableMajorityReadConcern: <boolean> # sharding: #集群分片相关 # clusterRole: <string> # archiveMovedChunks: <boolean> # auditLog: # destination: <string> # format: <string> # path: <string> # filter: <string> # snmp: # subagent: <boolean> #当设置为true,SNMP作为代理运行 # master: <boolean> #当设置为true,SNMP作为主服务器运行 # basisTech: # rootDirectory: <string>
如:
systemLog:
destination: file
path: "/opt/mongodb-linux-x86_64-4.0.10/logs/mongodb.log"
logAppend: true
traceAllExceptions: true
storage:
dbPath: "/opt/mongodb-linux-x86_64-4.0.10/data"
indexBuildRetry: true
journal:
enabled: true
processManagement:
fork: true
net:
bindIp: 0.0.0.0
port: 27017
setParameter:
enableLocalhostAuthBypass: false
security:
authorization: enabled
上面的security: authorization: enabled,刚开始应该置为disable,启动后进admin库设置好超级用户,然后再打开enable重启。
db.createUser({ user: "admin", pwd: "123456", roles: [{ role: "root", db: "admin" }] })
或类似
db.createUser({ user: "root", pwd: "123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
重启后,每次需要先use admin切换到admin库,然后再db.auth('username','pwd')
验证通过后,即可use 到其他库,在其他库上创建其他用户。
mongodb的用户是跟随数据库的,创建库内用户和验证的时候,都先要use 到对应的库。
以下是老的命令行方式,现在已经过时,不推荐使用。请使用上面的yaml格式。
-------------------------------------------------------------------------------
本文转载
Mongodb启动命令mongod参数说明
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.conf 配置文档里例如:
dbpath = /data/mongodb
logpath = /data/mongodb/mongodb.log
logappend = true
port = 27017
fork = true
auth = true
e.g:./mongod -shardsvr -replSet shard1 -port 16161 -dbpath /data/mongodb/data/shard1a -oplogSize 100 -logpath /data/mongodb/logs/shard1a.log -logappend -fork -rest