CentOS 7下MongoDB的安装配置详解
<p><span><strong>一、Mongodb安装</strong></span></p>
<p>
以下安装步骤以dp用户执行</p>
<p>
1. 下载mongodb 3.4.2的安装包:</p>
<p>
“mongodb-linux-x86_64-rhel70-3.4.2.tgz”,放在~/software下。</p>
<p>
2. 解压该文件包:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_751065">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ </code><code class="bash functions">cd</code> <code class="bash plain">~</code><code class="bash plain">/software</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">$ </code><code class="bash functions">tar</code> <code class="bash plain">-xf mongodb-linux-x86_64-rhel70-3.4.2.tgz</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
得到文件夹 mongodb-linux-x86_64-rhel70-3.4.2/,其中的bin文件夹包含Mongodb的所有可执行文件。</p>
<p>
3. 将bin文件夹拷贝到dp用户的默认可执行文件目录~/bin</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_110080">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ </code><code class="bash functions">mv</code> <code class="bash plain">bin ~/</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
4. 创建数据库文件夹</p>
<p>
创建数据库文件目录,放在~/data/db下</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_811774">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ </code><code class="bash functions">mkdir</code> <code class="bash plain">-p ~</code><code class="bash plain">/data/db</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
启动mongod服务</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_129366">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ mongod -dbpath ~</code><code class="bash plain">/data/db</code> <code class="bash plain">-port 7974</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
如可以启动,则安装成功。如不成功,可能需要进行SELinux配置,允许MongoDB可以在相应端口启动</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_904125">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments"># semanage port -a -t mongod_port_t -p tcp 7974</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
注:7974是本项目MongoDB使用的端口,代替默认端口 27017</p>
<p>
<span><strong>二、MongoDB配置</strong></span></p>
<p>
1. 写配置脚本:</p>
<p>
创建一个脚本mongod.conf,存放在/home/dp/data/mongodb/config下,内容为</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_911132">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
<div class="line number21 index20 alt2">
21</div>
<div class="line number22 index21 alt1">
22</div>
<div class="line number23 index22 alt2">
23</div>
<div class="line number24 index23 alt1">
24</div>
<div class="line number25 index24 alt2">
25</div>
<div class="line number26 index25 alt1">
26</div>
<div class="line number27 index26 alt2">
27</div>
<div class="line number28 index27 alt1">
28</div>
<div class="line number29 index28 alt2">
29</div>
<div class="line number30 index29 alt1">
30</div>
<div class="line number31 index30 alt2">
31</div>
<div class="line number32 index31 alt1">
32</div>
<div class="line number33 index32 alt2">
33</div>
<div class="line number34 index33 alt1">
34</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">systemLog:</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash spaces"> </code><code class="bash plain">destination: </code><code class="bash functions">file</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash comments">###日志存储位置</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code><code class="bash plain">path: </code><code class="bash plain">/home/dp/data/mongodb/log/mongod</code><code class="bash plain">.log</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash spaces"> </code><code class="bash plain">logAppend: </code><code class="bash functions">true</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">storage:</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash comments">##journal配置</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash spaces"> </code><code class="bash plain">journal:</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash spaces"> </code><code class="bash plain">enabled: </code><code class="bash functions">true</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash comments">##数据文件存储位置</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash spaces"> </code><code class="bash plain">dbPath: </code><code class="bash plain">/home/dp/data/db/</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash comments">##是否一个库一个文件夹</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash spaces"> </code><code class="bash plain">directoryPerDB: </code><code class="bash functions">true</code>
</div>
<div class="line number14 index13 alt1">
<code class="bash comments">##数据引擎</code>
</div>
<div class="line number15 index14 alt2">
<code class="bash spaces"> </code><code class="bash plain">engine: wiredTiger</code>
</div>
<div class="line number16 index15 alt1">
<code class="bash comments">##WT引擎配置</code>
</div>
<div class="line number17 index16 alt2">
<code class="bash spaces"> </code><code class="bash plain">wiredTiger:</code>
</div>
<div class="line number18 index17 alt1">
<code class="bash spaces"> </code><code class="bash plain">engineConfig:</code>
</div>
<div class="line number19 index18 alt2">
<code class="bash comments">##WT最大使用cache(根据服务器实际情况调节4~8)</code>
</div>
<div class="line number20 index19 alt1">
<code class="bash spaces"> </code><code class="bash plain">cacheSizeGB: 4</code>
</div>
<div class="line number21 index20 alt2">
<code class="bash comments">##是否将索引也按数据库名单独存储</code>
</div>
<div class="line number22 index21 alt1">
<code class="bash spaces"> </code><code class="bash plain">directoryForIndexes: </code><code class="bash functions">true</code>
</div>
<div class="line number23 index22 alt2">
<code class="bash comments">##表压缩配置,数据压缩算法,可选值“none”、“snappy”、“zlib”</code>
</div>
<div class="line number24 index23 alt1">
<code class="bash spaces"> </code><code class="bash plain">collectionConfig:</code>
</div>
<div class="line number25 index24 alt2">
<code class="bash spaces"> </code><code class="bash plain">blockCompressor: none</code>
</div>
<div class="line number26 index25 alt1">
<code class="bash comments">##索引配置</code>
</div>
<div class="line number27 index26 alt2">
<code class="bash spaces"> </code><code class="bash plain">indexConfig:</code>
</div>
<div class="line number28 index27 alt1">
<code class="bash spaces"> </code><code class="bash plain">prefixCompression: </code><code class="bash functions">true</code>
</div>
<div class="line number29 index28 alt2">
<code class="bash comments">##使mongo进程成为系统集成(父id为1)</code>
</div>
<div class="line number30 index29 alt1">
<code class="bash plain">processManagement:</code>
</div>
<div class="line number31 index30 alt2">
<code class="bash spaces"> </code><code class="bash plain">fork: </code><code class="bash functions">true</code>
</div>
<div class="line number32 index31 alt1">
<code class="bash comments">##端口配置,将默认端口设为7974(默认为27017)</code>
</div>
<div class="line number33 index32 alt2">
<code class="bash plain">net:</code>
</div>
<div class="line number34 index33 alt1">
<code class="bash spaces"> </code><code class="bash plain">port: 7974</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
2. 取消透明大页:</p>
<p>
MongoDB建议关闭Linux系统默认开启的透明大页功能,可编辑rc.local文件,使其在系统启动的时候关闭:</p>
<p>
编辑rc.local文件:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_206380">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># vim /etc/rc.d/rc.local</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
增加下列内容:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_71617">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash keyword">if</code> <code class="bash functions">test</code> <code class="bash plain">-f </code><code class="bash plain">/sys/kernel/mm/transparent_hugepage/enabled</code><code class="bash plain">; </code><code class="bash keyword">then</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash spaces"> </code><code class="bash functions">echo</code> <code class="bash plain">never > </code><code class="bash plain">/sys/kernel/mm/transparent_hugepage/enabled</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash spaces"> </code><code class="bash keyword">fi</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code><code class="bash keyword">if</code> <code class="bash functions">test</code> <code class="bash plain">-f </code><code class="bash plain">/sys/kernel/mm/transparent_hugepage/defrag</code><code class="bash plain">; </code><code class="bash keyword">then</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash spaces"> </code><code class="bash functions">echo</code> <code class="bash plain">never > </code><code class="bash plain">/sys/kernel/mm/transparent_hugepage/defrag</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash spaces"> </code><code class="bash keyword">fi</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
保存退出,然后赋予rc.local文件执行权限:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_594863">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># chmod +x /etc/rc.d/rc.local</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
再重启系统即可。</p>
<p>
3. 将MongoDB设为开机启动</p>
<p>
在CentOS 7下使用systemctl服务管理方式配置MongoDB的启动:</p>
<p>
CentOS 7的服务systemctl脚本存放在/usr/lib/systemd/,MongoDB需要开机不登陆就能运行,就要存在系统服务/usr/lib/systemd/system目录下。</p>
<p>
每一个服务以.service结尾,如mongod.service。内容分为3部分:、和</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_151992">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">Description=MongoDB database server</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">After=network.target</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">After=syslog.target</code>
</div>
<div class="line number5 index4 alt2">
</div>
<div class="line number6 index5 alt1">
<code class="bash plain"> </code>
</div>
<div class="line number7 index6 alt2">
<code class="bash comments">#Type=forking #一次性启动,mongod的后台保持由mongod自己的配置文件中定义</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">Type=oneshot</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">User=dp</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash comments">#PIDFile=/home/dp/data/mongodb/pid</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">ExecStart=</code><code class="bash plain">/usr/bin/numactl</code> <code class="bash plain">--interleave=all </code><code class="bash plain">/home/dp/bin/mongod</code> <code class="bash plain">-f </code><code class="bash plain">/home/dp/data/mongodb/config/mongod</code><code class="bash plain">.conf</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash comments">#ExecReload=</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash comments">#ExecStop=</code>
</div>
<div class="line number14 index13 alt1">
<code class="bash plain">PrivateTmp=</code><code class="bash functions">true</code>
</div>
<div class="line number15 index14 alt2">
</div>
<div class="line number16 index15 alt1">
<code class="bash plain"></code>
</div>
<div class="line number17 index16 alt2">
<code class="bash plain">WantedBy=multi-user.target</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
注:MongoDB建议关闭NUMA功能,用 numactl --interleave=all 方式启动 mongod 进程<br>
脚本按照上面编写完成后,以754的权限保存在/usr/lib/systemd/system目录下,这时就可以利用systemctl进行配置:</p>
<ul>
<li>
重新加载配置文件用systemctl daemon-reload</li>
<li>
用systemctl start mongod可测试服务是否可以成功运行</li>
<li>
如果不能运行则可以使用systemctl status mongod查看错误信息和其他服务信息。</li>
</ul>
<p>
如果无法启动MongoDB,可检查日志/home/dp/data/mongodb/log/mongod.log,如果是由于如下错误:</p>
<p>
WiredTiger error (13) , file:WiredTiger.wt, connection: /home/dp/data/db/WiredTiger.turtle: handle-open: open: Permission denied</p>
<p>
可能是由于WiredTiger.turtle的权限不足,或所有者不是dp用户,可以用chmod、chown、chgrp命令修改该文件的属性。</p>
<p>
使用systemctl enable mongod就可以将所编写的服务添加至开机启动。</p>
<p>
<span><strong>三、MongoDB的安全配置</strong></span></p>
<p>
1. 修改登陆端口号和IP</p>
<p>
在配置文件/home/dp/data/mongodb/config/mongod.conf下,定义:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_279340">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">net:</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash spaces"> </code><code class="bash plain">bindIp: 127.0.0.1,192.168.117.55</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash spaces"> </code><code class="bash plain">port: 79742017</code><code class="bash plain">/3/8</code> <code class="bash plain">16:59:55 2017</code><code class="bash plain">/3/8</code> <code class="bash plain">16:59:58</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
2. 添加认证用户</p>
<p>
在刚安装完毕的时候,MongoDB都默认有一个admin数据库,此时admin数据库是空的,没有记录权限相关的信息。当集合admin.system.users中一个用户都没有时,即使mongod启动时添加了—auth参数,如果没有在admin数据库中添加用户,此时不进行任何认证还是可以做任何操作(不管是否是以—auth 参数启动),直到在admin.system.users中添加了一个用户。加固的核心是只有在admin.system.users中添加用户之后,mongodb的认证,授权服务才能生效。</p>
<p>
步骤一:在未开启认证的环境下,登录到数据库</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_220549">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ mongo 127.0.0.1:7974</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
步骤二:切换到admin数据库</p>
<div class="jb51code">
<div>
<div class="syntaxhighlightersql" id="highlighter_828852">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain">> use admin</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
步骤三:创建管理员账号</p>
<div class="jb51code">
<div>
<div class="syntaxhighlightersql" id="highlighter_299383">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain">>db.createUser({</code><code class="sql color2">user</code><code class="sql plain">:</code><code class="sql string">"ems"</code><code class="sql plain">,pwd:</code><code class="sql string">"pubugou2017"</code><code class="sql plain">,roles:[</code><code class="sql string">"root"</code><code class="sql plain">]})</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
新增的用户在 db.system.users 中</p>
<div class="jb51code">
<div>
<div class="syntaxhighlightersql" id="highlighter_266569">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain">> db.getCollectionNames()</code>
</div>
<div class="line number2 index1 alt1">
<code class="sql plain">[ </code><code class="sql string">"system.indexes"</code><code class="sql plain">, </code><code class="sql string">"system.users"</code><code class="sql plain">, </code><code class="sql string">"system.version"</code> <code class="sql plain">]</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
说明:</p>
<p>
1)MongoDB从V3版本开始取消使用addUser方法,采用db.createUser方法创建用户;</p>
<p>
2)账号不要设置为常见账号,密码需要满足一定的复杂度,至少8位以上,包括大小写字母、数字、特殊字符混合体,不要使用生日、姓名、身份证编号等常见密码。</p>
<p>
步骤四:验证用户是否创建成功</p>
<div class="jb51code">
<div>
<div class="syntaxhighlightersql" id="highlighter_901505">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain">> db.auth(</code><code class="sql string">"supper"</code><code class="sql plain">,</code><code class="sql string">"supWDxsf67%H"</code><code class="sql plain">)</code>
</div>
<div class="line number2 index1 alt1">
<code class="sql plain">1</code>
</div>
<div class="line number3 index2 alt2">
<code class="sql plain">> exit</code>
</div>
<div class="line number4 index3 alt1">
<code class="sql plain">bye</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
步骤五:杀掉进程,重启mongoDB服务</p>
<p>
<span><strong>四、Mongodb C drive安装</strong></span></p>
<p>
1. 下载Mongodb C驱动文件解压</p>
<p>
下载地址为:mongo-c-driver 1.61</p>
<p>
2. 运行配置脚本</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_831986">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ .</code><code class="bash plain">/configure</code> <code class="bash plain">–disable-automatic-init-and-cleanup</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
3. 编译</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_557478">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ </code><code class="bash functions">make</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
4. 安装</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_840519">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ </code><code class="bash functions">sudo</code> <code class="bash functions">make</code> <code class="bash functions">install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
注:使用 sudo 应先对dp用户的sudo权限进行设置,命令为</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_203148">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments"># visudo</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
或者使用root用户</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_147426">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments"># make install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
安装生成的头文件在/usr/local/include/libmongoc-1.0下,库文件在/usr/local/lib下。</p>
<p>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。</p>
<p>
原文链接:http://www.jianshu.com/p/ccdd3e884b86</p>
頁:
[1]