MongoDB Replica Set 集群
<p>一、简介:</p><p>Mongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式。</p>
<p>Mongodb集群搭建有三种方式分别是Replica Set / Sharding / Master-Slaver。这里只说明Replica Set(<span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">副本集</span>)集群搭建方式.</p>
<p><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">Replica Set</span></p>
<p><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">简单来说就是集群当中包含了多份数据,保证主节点挂掉了,备节点能继续提供数据服务,提供的前提就是数据需要和主节点一致,如下图.</span></p>
<p> </p>
<p><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px"><img src="https://img2018.cnblogs.com/i-beta/830887/202002/830887-20200228213006188-1782210373.png"></span></p>
<p> </p>
<p><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">Mongodb(M)表示主节点,Mongodb(S)表示备节点,Mongodb(A)表示仲裁节点。主备节点存储数据,仲裁节点不存储数据。客户端同时连接主节点与备节点,不连接仲裁节点。</span></p>
<p><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px"><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">默认设置下,主节点提供所有增删查改服务,备节点不提供任何服务。但是可以通过设置使备节点提供查询服务,这样就可以减少主节点的压力,当客户端进行数据查询时,请求自动转到备节点上。这个设置叫做Read Preference Modes,同时Java客户端提供了简单的配置方式,可以不必直接对数据库进行操作。</span></span></p>
<p><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px"><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px"><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">仲裁节点是一种特殊的节点,它本身并不存储数据,主要的作用是决定哪一个备节点在主节点挂掉之后提升为主节点,所以客户端不需要连接此节点。这里虽然只有一个备节点,但是仍然需要一个仲裁节点来提升备节点级别。</span></span></span></p>
<p><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px"><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px"><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px"><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">二、部署</span></span></span></span></p>
<p><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px"><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px"><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px"><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px"><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px"><span style="box-sizing: border-box; outline: 0; margin: 0; padding: 0; font-weight: bold; overflow-wrap: break-word">1.下载mongodb</span></span></span></span></span></span></p>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; line-height: 26px; overflow-x: auto; overflow-wrap: break-word"> MongoDB官网下载中心:MongoDB Download Center</p>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word"> mongodb 3.4.10下载地址:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.10.tgz</p>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word">2.环境:</p>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word"><span style="box-sizing: border-box; outline: 0; margin: 0; padding: 0; font-weight: bold; overflow-wrap: break-word">环境</span>: 这里副本集(Replica Set)采用一主一备一仲裁模型:</p>
<table style="height: 74px; width: 791px" border="0">
<tbody>
<tr>
<td style="text-align: left">Host</td>
<td>Ip</td>
<td>Software</td>
<td>Port</td>
<td>Usage</td>
<td>OS</td>
</tr>
<tr>
<td>server-1</td>
<td>192.168.6.42</td>
<td>mongodb 3.4.10<br></td>
<td>27017</td>
<td>primary(主)</td>
<td>Linux release 7.6.1810</td>
</tr>
<tr>
<td>server-2</td>
<td>192.168.6.43</td>
<td>mongodb 3.4.10</td>
<td>27017</td>
<td>secondary(备)</td>
<td>Linux release 7.6.1810</td>
</tr>
<tr>
<td>server-3</td>
<td>192.168.6.44</td>
<td>mongodb 3.4.10</td>
<td>27017</td>
<td>arbiter(仲裁)</td>
<td>Linux release 7.6.1810</td>
</tr>
</tbody>
</table>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word">3.<span style="font-weight: bold">. 解压并创建目录</span></p>
<div class="cnblogs_code">
<pre># tar zxvf mongodb-linux-x86_64-rhel70-<span style="color: rgba(128, 0, 128, 1)">3.4</span>.<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">.tgz
# mv mongodb-linux-x86_64-rhel70-<span style="color: rgba(128, 0, 128, 1)">3.4</span>.<span style="color: rgba(128, 0, 128, 1)">10</span>mongodb <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">为了方便简洁,改名</span></pre>
</div>
<p><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">同样的,在server-2和server-3上也解压并改名。</span></p>
<div class="cnblogs_code">
<pre># mkdir -p /data/mongodb/primary <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">在server-1上建立主数据存放目录</span>
<span style="color: rgba(0, 0, 0, 1)">
# mkdir /etc/mongodb/ <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">即将存放primary的配置文件</span>
<span style="color: rgba(0, 0, 0, 1)">
# mkdir -p /data/mongodb/secondary <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">在server-2上建立从数据存放目录</span>
<span style="color: rgba(0, 0, 0, 1)">
# mkdir /etc/mongodb/ <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">即将存放secondary的配置文件</span>
<span style="color: rgba(0, 0, 0, 1)">
# mkdir -p /data/mongodb/arbiter <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">在server-3上建立仲裁数据存放目录</span>
<span style="color: rgba(0, 0, 0, 1)">
# mkdir /etc/mongodb/ <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">即将存放arbiter的配置文件</span></pre>
</div>
<p><span style="box-sizing: border-box; outline: 0; margin: 0; padding: 0; font-weight: bold; overflow-wrap: break-word; color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">4. 新建配置文件</span></p>
<pre># vim /etc/mongodb/primary.conf <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">新建主配置文件,内容如下:</span></pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">#PRIMARY.CONF
dbpath</span>=/data/mongodb/primary <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">存放数据目录</span>
logpath=/data/mongodb/primary.log <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">日志数据目录</span>
pidfilepath=/data/mongodb/primary.pid <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">pid文件</span>
#keyFile=/data/mongodb/mongodb.key <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">节点间用户认证文件,内容必须一致,权限600,仅副本集模式有效.</span>
directoryperdb=<span style="color: rgba(0, 0, 255, 1)">true</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">数据库是否分目录存放</span>
logappend=<span style="color: rgba(0, 0, 255, 1)">true</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">日志追加方式存放</span>
replSet=do1 <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">Replica Set名字,自己定义即可</span>
bind_ip=<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">6.42</span> <span style="color: rgba(0, 128, 0, 1)">//
</span>port=<span style="color: rgba(128, 0, 128, 1)">27017</span><span style="color: rgba(0, 0, 0, 1)">
#auth</span>=<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
oplogSize</span>=<span style="color: rgba(128, 0, 128, 1)">100</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置oplog的大小,单位MB</span>
fork=<span style="color: rgba(0, 0, 255, 1)">true</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">启动到后台,守护进程方式启动</span>
noprealloc=<span style="color: rgba(0, 0, 255, 1)">true</span> </pre>
</div>
<p>集群配置文件:</p>
<div class="cnblogs_code">
<pre># cat /etc/mongodb/<span style="color: rgba(0, 0, 0, 1)">primary.conf
#PRIMARY.CONF
dbpath</span>=/data/mongodb/<span style="color: rgba(0, 0, 0, 1)">primary
logpath</span>=/data/mongodb/<span style="color: rgba(0, 0, 0, 1)">primary.log
pidfilepath</span>=/data/mongodb/<span style="color: rgba(0, 0, 0, 1)">primary.pid
#keyFile</span>=/data/mongodb/<span style="color: rgba(0, 0, 0, 1)">mongodb.key
directoryperdb</span>=<span style="color: rgba(0, 0, 255, 1)">true</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)">
replSet</span>=<span style="color: rgba(0, 0, 0, 1)">do1
bind_ip</span>=<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">6.42</span><span style="color: rgba(0, 0, 0, 1)">
port</span>=<span style="color: rgba(128, 0, 128, 1)">27017</span><span style="color: rgba(0, 0, 0, 1)">
#auth</span>=<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
oplogSize</span>=<span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">
fork</span>=<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
noprealloc</span>=<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
# </pre>
</div>
<p><span style="color: rgba(56, 58, 66, 1); font-family: "Source Code Pro", "DejaVu Sans Mono", "Ubuntu Mono", "Anonymous Pro", "Droid Sans Mono", Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, "PingFang SC", "Microsoft YaHei", sans-serif; white-space: pre; background-color: rgba(250, 250, 250, 1)">[</span><span class="hljs-symbol" style="box-sizing: border-box; outline: 0; margin: 0; padding: 0; font-family: "Source Code Pro", "DejaVu Sans Mono", "Ubuntu Mono", "Anonymous Pro", "Droid Sans Mono", Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, "PingFang SC", "Microsoft YaHei", sans-serif; color: rgba(64, 120, 242, 1); overflow-wrap: break-word; white-space: pre; background-color: rgba(250, 250, 250, 1)">root@</span><span style="color: rgba(56, 58, 66, 1); font-family: "Source Code Pro", "DejaVu Sans Mono", "Ubuntu Mono", "Anonymous Pro", "Droid Sans Mono", Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, "PingFang SC", "Microsoft YaHei", sans-serif; white-space: pre; background-color: rgba(250, 250, 250, 1)">server</span><span class="hljs-number" style="box-sizing: border-box; outline: 0; margin: 0; padding: 0; font-family: "Source Code Pro", "DejaVu Sans Mono", "Ubuntu Mono", "Anonymous Pro", "Droid Sans Mono", Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, "PingFang SC", "Microsoft YaHei", sans-serif; color: rgba(152, 104, 1, 1); overflow-wrap: break-word; white-space: pre; background-color: rgba(250, 250, 250, 1)">-2</span><span style="color: rgba(56, 58, 66, 1); font-family: "Source Code Pro", "DejaVu Sans Mono", "Ubuntu Mono", "Anonymous Pro", "Droid Sans Mono", Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, "PingFang SC", "Microsoft YaHei", sans-serif; white-space: pre; background-color: rgba(250, 250, 250, 1)"> ~]# vim /etc/mongodb/secondary.conf </span><span class="hljs-comment" style="box-sizing: border-box; outline: 0; margin: 0; padding: 0; font-family: "Source Code Pro", "DejaVu Sans Mono", "Ubuntu Mono", "Anonymous Pro", "Droid Sans Mono", Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, "PingFang SC", "Microsoft YaHei", sans-serif; color: rgba(160, 161, 167, 1); font-style: italic; overflow-wrap: break-word; white-space: pre; background-color: rgba(250, 250, 250, 1)">//secondary的配置文件,如下:</span></p>
<div class="cnblogs_code">
<pre># cat /etc/mongodb/<span style="color: rgba(0, 0, 0, 1)">secondary.conf
#secondary.CONF
dbpath</span>=/data/mongodb/<span style="color: rgba(0, 0, 0, 1)">secondary
logpath</span>=/data/mongodb/<span style="color: rgba(0, 0, 0, 1)">secondary.log
pidfilepath</span>=/data/mongodb/<span style="color: rgba(0, 0, 0, 1)">secondary.pid
#keyFile</span>=/data/mongodb/<span style="color: rgba(0, 0, 0, 1)">mongodb.key
directoryperdb</span>=<span style="color: rgba(0, 0, 255, 1)">true</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)">
replSet</span>=<span style="color: rgba(0, 0, 0, 1)">do1
bind_ip</span>=<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">6.43</span><span style="color: rgba(0, 0, 0, 1)">
port</span>=<span style="color: rgba(128, 0, 128, 1)">27017</span><span style="color: rgba(0, 0, 0, 1)">
#auth</span>=<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
oplogSize</span>=<span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">
fork</span>=<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
noprealloc</span>=<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
# </pre>
</div>
<p><span style="color: rgba(56, 58, 66, 1); font-family: "Source Code Pro", "DejaVu Sans Mono", "Ubuntu Mono", "Anonymous Pro", "Droid Sans Mono", Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, "PingFang SC", "Microsoft YaHei", sans-serif; white-space: pre; background-color: rgba(250, 250, 250, 1)"></span><span class="hljs-comment" style="box-sizing: border-box; outline: 0; margin: 0; padding: 0; font-family: "Source Code Pro", "DejaVu Sans Mono", "Ubuntu Mono", "Anonymous Pro", "Droid Sans Mono", Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, "PingFang SC", "Microsoft YaHei", sans-serif; color: rgba(160, 161, 167, 1); font-style: italic; overflow-wrap: break-word; white-space: pre"># vim /etc/mongodb/arbiter.conf // arbiter的配置文件内容如下</span></p>
<div class="cnblogs_code">
<pre># cat /etc/mongodb/<span style="color: rgba(0, 0, 0, 1)">arbiter.conf
#arbiter.CONF
dbpath</span>=/data/mongodb/<span style="color: rgba(0, 0, 0, 1)">arbiter
logpath</span>=/data/mongodb/<span style="color: rgba(0, 0, 0, 1)">arbiter.log
pidfilepath</span>=/data/mongodb/<span style="color: rgba(0, 0, 0, 1)">arbiter.pid
#keyFile</span>=/data/mongodb/<span style="color: rgba(0, 0, 0, 1)">mongodb.key
directoryperdb</span>=<span style="color: rgba(0, 0, 255, 1)">true</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)">
replSet</span>=<span style="color: rgba(0, 0, 0, 1)">do1
bind_ip</span>=<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">6.44</span><span style="color: rgba(0, 0, 0, 1)">
port</span>=<span style="color: rgba(128, 0, 128, 1)">27017</span><span style="color: rgba(0, 0, 0, 1)">
#auth</span>=<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
oplogSize</span>=<span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">
fork</span>=<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
noprealloc</span>=<span style="color: rgba(0, 0, 255, 1)">true</span></pre>
</div>
<p><span style="box-sizing: border-box; outline: 0; margin: 0; padding: 0; font-weight: bold; overflow-wrap: break-word; color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">5. 启动mongodb服务</span></p>
<div class="cnblogs_code">
<pre># ./mongodb/bin/mongod -f /etc/mongodb/primary.conf <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">启动主</span>
<span style="color: rgba(0, 0, 0, 1)">
# ./mongodb/bin/mongod -f /etc/mongodb/secondary.conf <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">启动从</span>
<span style="color: rgba(0, 0, 0, 1)">
# ./mongodb/bin/mongod -f /etc/mongodb/arbiter.conf <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">启动仲裁</span></pre>
</div>
<p>如果出现started successfuly,则说明启动成功.</p>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word"><span style="box-sizing: border-box; outline: 0; margin: 0; padding: 0; font-weight: bold; overflow-wrap: break-word">6. 将节点配置组成集群</span></p>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word">可以通过客户端连接mongodb,也可以直接在三个节点中选择一个连接mongodb节点,这里就在server-1操作,会出现一个交互界面:</p>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word"><span style="color: rgba(56, 58, 66, 1); font-family: "Source Code Pro", "DejaVu Sans Mono", "Ubuntu Mono", "Anonymous Pro", "Droid Sans Mono", Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, "PingFang SC", "Microsoft YaHei", sans-serif; font-size: 14px; white-space: pre; background-color: rgba(250, 250, 250, 1)"></span><span class="hljs-comment" style="box-sizing: border-box; outline: 0; margin: 0; padding: 0; font-family: "Source Code Pro", "DejaVu Sans Mono", "Ubuntu Mono", "Anonymous Pro", "Droid Sans Mono", Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, "PingFang SC", "Microsoft YaHei", sans-serif; color: rgba(160, 161, 167, 1); font-style: italic; overflow-wrap: break-word; font-size: 14px; white-space: pre"># ./mongodb/bin/mongo 192.168.6.42:27017 //使用mongo命令登录,格式:mongo IP:PORT</span></p>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word"><span class="hljs-comment" style="box-sizing: border-box; outline: 0; margin: 0; padding: 0; font-family: "Source Code Pro", "DejaVu Sans Mono", "Ubuntu Mono", "Anonymous Pro", "Droid Sans Mono", Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, "PingFang SC", "Microsoft YaHei", sans-serif; color: rgba(160, 161, 167, 1); font-style: italic; overflow-wrap: break-word; font-size: 14px; white-space: pre"><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; font-style: normal; white-space: normal">初始化配置:</span></span></p>
<div class="cnblogs_code">
<pre>> use admin;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">直接回车</span>
<span style="color: rgba(0, 0, 0, 1)">switched to db admin
cfg</span>={ _id:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">do1</span><span style="color: rgba(128, 0, 0, 1)">"</span>,members:[{_id:<span style="color: rgba(128, 0, 128, 1)">0</span>,host:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">192.168.6.42:27017</span><span style="color: rgba(128, 0, 0, 1)">'</span>,priority:<span style="color: rgba(128, 0, 128, 1)">2</span>},{_id:<span style="color: rgba(128, 0, 128, 1)">1</span>,host:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">192.168.6.43:27017</span><span style="color: rgba(128, 0, 0, 1)">'</span>,priority:<span style="color: rgba(128, 0, 128, 1)">1</span>},{_id:<span style="color: rgba(128, 0, 128, 1)">2</span>,host:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">192.168.6.44:27017</span><span style="color: rgba(128, 0, 0, 1)">'</span>,arbiterOnly:<span style="color: rgba(0, 0, 255, 1)">true</span>}] };</pre>
</div>
<p><span style="color: rgba(51, 51, 0, 1); font-family: "Source Code Pro", "DejaVu Sans Mono", "Ubuntu Mono", "Anonymous Pro", "Droid Sans Mono", Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, "PingFang SC", "Microsoft YaHei", sans-serif; font-style: italic; white-space: pre; background-color: rgba(250, 250, 250, 1)">使配置生效</span></p>
<div class="cnblogs_code">
<pre>> rs.initiate(cfg) <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">使配置生效</span></pre>
</div>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word">说明:cfg名字可选,只要跟mongodb参数不冲突,_id为Replica Set名字,members里面的优先级priority值高的为主节点,</p>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word">对于仲裁点一定要加上arbiterOnly:true,否则主备模式不生效。</p>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word">查看是否生效:rs.status(),集群节点的状态:主节点PRIMARY,副本节点SECONDARY</p>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word"><img src="https://img2018.cnblogs.com/i-beta/830887/202002/830887-20200228223153139-1735352509.png"></p>
<p> <img src="https://img2018.cnblogs.com/i-beta/830887/202002/830887-20200228223236725-1811667648.png"></p>
<p> <img src="https://img2018.cnblogs.com/i-beta/830887/202002/830887-20200228223323402-883026160.png"></p>
<p> <img src="https://img2018.cnblogs.com/i-beta/830887/202002/830887-20200228223351716-1683769653.png"></p>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word">下面会显示字样:"ok" : 1,表明整个副本集已经搭建成功了。</p>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word">7、测试副本集数据复制功能</p>
<p style="box-sizing: border-box; outline: 0; margin: 0 0 16px; padding: 0; font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px; color: rgba(77, 77, 77, 1); line-height: 26px; overflow-x: auto; overflow-wrap: break-word">在主节点192.168.6.42 上连接到终端:</p>
<div class="cnblogs_code">
<pre>cd /data/mongodb/<span style="color: rgba(0, 0, 0, 1)">bin
.</span>/mongo <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">6.42</span>:<span style="color: rgba(128, 0, 128, 1)">27017</span><span style="color: rgba(0, 0, 0, 1)">
do1:PRIMARY</span>> use test; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">建立test 数据库</span>
<span style="color: rgba(0, 0, 0, 1)">switched to db test
do1:PRIMARY</span>> db.testdb.insert({<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">test1</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">testval1</span><span style="color: rgba(128, 0, 0, 1)">"</span>}) <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">往testdb表插入数据</span>
WriteResult({ <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">nInserted</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> })
do1:PRIMARY</span>><span style="color: rgba(0, 0, 0, 1)"> show tables;
testdb
do1:PRIMARY</span>> </pre>
</div>
<p><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">在副本节点 192.168.6.43 上连接到mongodb查看数据是否复制过来。</span></p>
<div class="cnblogs_code">
<pre># cd /data/mongodb/bin/<span style="color: rgba(0, 0, 0, 1)">
# ./mongo <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">6.43</span>:<span style="color: rgba(128, 0, 128, 1)">27017</span><span style="color: rgba(0, 0, 0, 1)">
MongoDB shell version v3.</span><span style="color: rgba(128, 0, 128, 1)">4.10</span><span style="color: rgba(0, 0, 0, 1)">
connecting to: </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">6.43</span>:<span style="color: rgba(128, 0, 128, 1)">27017</span><span style="color: rgba(0, 0, 0, 1)">
MongoDB server version: </span><span style="color: rgba(128, 0, 128, 1)">3.4</span>.<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">
do1:SECONDARY</span>><strong><span style="color: rgba(0, 0, 0, 1)">
do1:SECONDARY</span>></strong><span style="color: rgba(0, 0, 0, 1)"><strong> use test;</strong>
switched to db test
<strong>do1:SECONDARY</strong></span><strong>><span style="color: rgba(0, 0, 0, 1)"> show tables;
</span></strong><span style="color: rgba(128, 0, 128, 1)">2020</span>-<span style="color: rgba(128, 0, 128, 1)">02</span>-28T22:<span style="color: rgba(128, 0, 128, 1)">24</span>:<span style="color: rgba(128, 0, 128, 1)">42.525</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span><span style="color: rgba(0, 0, 0, 1)"> E QUERY Error: listCollections failed: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ok</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">errmsg</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">not master and slaveOk=false</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">code</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">13435</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">codeName</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">NotMasterNoSlaveOk</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
} :
_getErrorWithCode@src</span>/mongo/shell/utils.js:<span style="color: rgba(128, 0, 128, 1)">25</span>:<span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">
DB.prototype._getCollectionInfosCommand@src</span>/mongo/shell/db.js:<span style="color: rgba(128, 0, 128, 1)">807</span>:<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
DB.prototype.getCollectionInfos@src</span>/mongo/shell/db.js:<span style="color: rgba(128, 0, 128, 1)">819</span>:<span style="color: rgba(128, 0, 128, 1)">19</span><span style="color: rgba(0, 0, 0, 1)">
DB.prototype.getCollectionNames@src</span>/mongo/shell/db.js:<span style="color: rgba(128, 0, 128, 1)">830</span>:<span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">
shellHelper.show@src</span>/mongo/shell/utils.js:<span style="color: rgba(128, 0, 128, 1)">774</span>:<span style="color: rgba(128, 0, 128, 1)">9</span><span style="color: rgba(0, 0, 0, 1)">
shellHelper@src</span>/mongo/shell/utils.js:<span style="color: rgba(128, 0, 128, 1)">671</span>:<span style="color: rgba(128, 0, 128, 1)">15</span><span style="color: rgba(0, 0, 0, 1)">
@(shellhelp2):</span><span style="color: rgba(128, 0, 128, 1)">1</span>:<span style="color: rgba(128, 0, 128, 1)">1</span><strong><span style="color: rgba(0, 0, 0, 1)">
do1:SECONDARY</span>></strong><span style="color: rgba(0, 0, 0, 1)"><strong> db.getMongo().setSlaveOk();</strong>
<strong>do1:SECONDARY</strong></span><strong>></strong><span style="color: rgba(0, 0, 0, 1)"><strong> show tables;</strong>
<strong>testdb</strong>
do1:SECONDARY</span>> </pre>
</div>
<p><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">#mongodb默认是从主节点读写数据的,副本节点上不允许读,需要设置副本节点可以读,执行如下命令即可 </span><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">db.getMongo().setSlaveOk();</span></p>
<p><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">如果需要配置mongodb集群密码访问认证,则需要修改配置文件及执行如下操作(先创建用户,然后在配置文件开启认证参数auth、keyFile),具体见参考文档:</span></p>
<div class="cnblogs_code">
<pre>db.createUser({user:<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>,pwd:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">do1@1234</span><span style="color: rgba(128, 0, 0, 1)">"</span>,roles:[{role:<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>,db:<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)">}]})
db.createUser({user: </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>, pwd: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">do1@1234</span><span style="color: rgba(128, 0, 0, 1)">"</span>, roles: [{ role: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">dbOwner</span><span style="color: rgba(128, 0, 0, 1)">"</span>, db: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">tiforg</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> }]})
.</span>/mongo<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">6.42</span>:<span style="color: rgba(128, 0, 128, 1)">27017</span> -u <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> -p <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">do1@1234</span><span style="color: rgba(128, 0, 0, 1)">"</span> --<span style="color: rgba(0, 0, 0, 1)">authenticationDatabase tiforg
do1:PRIMARY</span>><span style="color: rgba(0, 0, 0, 1)"> use tiforg;
switched to db tiforg
do1:PRIMARY</span>><span style="color: rgba(0, 0, 0, 1)">
do1:PRIMARY</span>><span style="color: rgba(0, 0, 0, 1)">
do1:PRIMARY</span>> db.createUser({user: <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>, pwd: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">do1@1234</span><span style="color: rgba(128, 0, 0, 1)">"</span>, roles: [{ role: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">dbOwner</span><span style="color: rgba(128, 0, 0, 1)">"</span>, db: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">tiforg</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> }]})
Successfully added user: {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">user</span><span style="color: rgba(128, 0, 0, 1)">"</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><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">roles</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : [
{
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">role</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">dbOwner</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">db</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">tiforg</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
}
]
}
do1:PRIMARY</span>><span style="color: rgba(0, 0, 0, 1)">
认证:
use tiforg
db.auth(</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(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">do1@1234</span><span style="color: rgba(128, 0, 0, 1)">"</span>)</pre>
</div>
<p>使用 db.updateUser 修改用户密码</p>
<div class="cnblogs_code">
<pre>do1:PRIMARY><span style="color: rgba(0, 0, 0, 1)"> use tiforg
switched to db tiforg
do1:PRIMARY</span>> db.updateUser(<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>,{pwd:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">do1#1234</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">});
do1:PRIMARY</span>> exit</pre>
</div>
<p>常用命令:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">show dbs#显示数据库列表
show collections#显示当前数据库中的集合(类似关系数据库中的表)
show users#显示用户
use </span><db name><span style="color: rgba(0, 0, 0, 1)">#切换当前数据库,如果数据库不存在则创建数据库。
db.help()#显示数据库操作命令,里面有很多的命令
db.foo.help()#显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
db.foo.find()#对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
db.foo.find( { a : </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> } )#对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
db.dropDatabase()#删除当前使用数据库
db.cloneDatabase(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">127.0.0.1</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">) #将指定机器上的数据库的数据克隆到当前数据库
db.copyDatabase(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mydb</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">temp</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">127.0.0.1</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)#将本机的mydb的数据复制到temp数据库中
db.repairDatabase()#修复当前数据库
db.getName()#查看当前使用的数据库,也可以直接用db
db.stats()#显示当前db状态
db.version()#当前db版本
db.getMongo()#查看当前db的链接机器地址
db.serverStatus()#查看数据库服务器的状态</span></pre>
</div>
<p>查看全局所有账户 </p>
<p>db.system.users.<span class="hljs-built_in">find().pretty()</span></p>
<p>参考文档:https://www.cnblogs.com/gaomanito/p/11731658.html </p>
<p> https://www.cnblogs.com/guigujun/p/9595234.html</p>
<p> </p>
<p><span style="color: rgba(77, 77, 77, 1); font-family: "Microsoft YaHei", "SF Pro Display", Roboto, Noto, Arial, "PingFang SC", sans-serif; font-size: 16px">副本集</span></p><br><br>
来源:https://www.cnblogs.com/saneri/p/12380803.html
頁:
[1]