mongodb配置文件详解
<p> </p><p> </p>
<p>mongodb 3.0及以上版本基本都是使用 yaml 语法格式的配置文件, 启动 mongo 实例如果不是指定配置文件或参数命令启动, 会按照默认的参数启动。</p>
<h3>常用基本配置文件参数</h3>
<p> </p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">storage:
# mongod 进程存储数据目录,此配置仅对 mongod 进程有效
dbPath: </span>/data/mongodb/<span style="color: rgba(0, 0, 0, 1)">db
是否开启 journal 日志持久存储,journal 日志用来数据恢复,是 mongod 最基础的特性,通常用于故障恢复。</span><span style="color: rgba(128, 0, 128, 1)">64</span> 位系统默认为 <span style="color: rgba(0, 0, 255, 1)">true</span>,<span style="color: rgba(128, 0, 128, 1)">32</span> 位默认为 <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">,建议开启,仅对 mongod 进程有效。
journal:
enabled: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
# 存储引擎类型,mongodb </span><span style="color: rgba(128, 0, 128, 1)">3.0</span><span style="color: rgba(0, 0, 0, 1)"> 之后支持 “mmapv1”、“wiredTiger” 两种引擎,默认值为“mmapv1”;官方宣称 wiredTiger 引擎更加优秀。
engine: mmapv1
systemLog:
# 日志输出目的地,可以指定为 “file” 或者“syslog”,表述输出到日志文件,如果不指定,则会输出到标准输出中(standard output)
destination: file
# 如果为 </span><span style="color: rgba(0, 0, 255, 1)">true</span>,当 mongod/mongos 重启后,将在现有日志的尾部继续添加日志。否则,将会备份当前日志文件,然后创建一个新的日志文件;默认为 <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">。
logAppend: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
# 日志路径
path: </span>/<span style="color: rgba(0, 0, 255, 1)">var</span>/log/mongodb/<span style="color: rgba(0, 0, 0, 1)">mongod.log
net:
# 指定端口
port: </span><span style="color: rgba(128, 0, 128, 1)">27017</span><span style="color: rgba(0, 0, 0, 1)">
# 绑定外网 op 多个用逗号分隔
bindIp: </span><span style="color: rgba(128, 0, 128, 1)">0.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.0</span><span style="color: rgba(0, 0, 0, 1)">
maxIncomingConnections: </span><span style="color: rgba(128, 0, 128, 1)">10000</span></pre>
</div>
<p> </p>
<p> </p>
<h3>内存优化相关的配置</h3>
<p>MongoDB 在使用过程中, 内存占用会越来越大, 甚至达到危险的状态, 而且会一直保持最高状态,<br> 官网上有相关的内容:https://docs.mongodb.com/v3.4/core/wiredtiger/index.html<br> 以下根据官网, 增加限制内存的配置, 启动mongo使用配置文件启动</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">storage:
dbPath: </span>/data/mongodb/<span style="color: rgba(0, 0, 0, 1)">db
journal:
enabled: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
engine: wiredTiger
# 如下配置仅对 wiredTiger 引擎生效(</span><span style="color: rgba(128, 0, 128, 1)">3.0</span><span style="color: rgba(0, 0, 0, 1)"> 以上版本)
wiredTiger:
# wiredTiger 缓存工作集(working </span><span style="color: rgba(0, 0, 255, 1)">set</span><span style="color: rgba(0, 0, 0, 1)">)数据的内存大小,单位:GB
# 此值决定了 wiredTiger 与 mmapv1 的内存模型不同,它可以限制 mongod 对内存的使用量,而 mmapv1 则不能(依赖于系统级的 mmap)。默认情况下,cacheSizeGB 的值为假定当前节点只部署一个 mongod 实例,此值的大小为物理内存的一半;如果当前节点部署了多个 mongod 进程,那么需要合理配置此值。如果 mongod 部署在虚拟容器中(比如,lxc,cgroups,Docker)等,它将不能使用整个系统的物理内存,则需要适当调整此值。默认值为物理内存的一半。
engineConfig:
cacheSizeGB: </span><span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">
systemLog:
destination: file
logAppend: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
path: </span>/<span style="color: rgba(0, 0, 255, 1)">var</span>/log/mongodb/<span style="color: rgba(0, 0, 0, 1)">mongod.log
net:
port: </span><span style="color: rgba(128, 0, 128, 1)">27017</span><span style="color: rgba(0, 0, 0, 1)">
bindIp: </span><span style="color: rgba(128, 0, 128, 1)">0.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.0</span><span style="color: rgba(0, 0, 0, 1)">
maxIncomingConnections: </span><span style="color: rgba(128, 0, 128, 1)">10000</span></pre>
</div>
<p> </p>
<p>注意:cacheSizeGB只限制存储引擎使用的内存 但是储存引擎使用的内存 < mongodb使用的总内存</p>
<p> </p>
<h3>添加用户认证</h3>
<p>开启用户认证前需要创建一个root用户 如:</p>
<p> </p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">use admin
db.createUser({
user:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">root</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
pwd:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">root123</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
roles:[
{
role:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">userAdminAnyDatabase</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
db:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">admin</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
}
]
})</span></pre>
</div>
<p> </p>
<p>然后在配置文件中添加如下配置信息</p>
<p> </p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">security:
authorization: enabled</span></pre>
</div>
<p> </p>
<p>然后重启mongo, 不然用户认证不生效, 重启后就可以创建其他普通用户了</p>
<p> </p>
<p>参考:https://blog.csdn.net/weixin_43886133/article/details/90607193</p>
<p> </p><br><br>
来源:https://www.cnblogs.com/zhongguiyao/p/14148483.html
頁:
[1]