CentOS7.4 安装mongodb
<div><p>温馨提示:我的环境是腾讯云自带的CentOS7.4 x64 镜像,本地环境是win10 x64 专业版,ssh工具是用的win10 自带的cmd, 远程工具版本是Robo 3T 1.2.1 。<br>
如果环境不一致,可能会出现无法预知的错误。</p>
<p>1、去官网找到安装包地址,复制下来。<br>
官网地址:https://www.mongodb.com/download-center?jmp=nav#community<br>
我使用的安装包地址:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz</p>
<p>2、使用SSH登录服务器,找一个文件夹存放安装包,我这里使用的是 /usr</p>
<div class="_2Uzcx_">
<div class="cnblogs_code">
<pre>cd /<span style="color: rgba(0, 0, 0, 1)">usr
wget https:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz</span></pre>
</div>
<p> </p>
</div>
<p>第一步是定位到/usr文件夹,第二步是下载安装包。</p>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="936" data-height="187"><img src="//upload-images.jianshu.io/upload_images/2103305-4367461e3990e5df.png?imageMogr2/auto-orient/strip|imageView2/2/w/936/format/webp"></div>
</div>
<div class="image-caption"> </div>
</div>
<br>
<p>如图所示进度到100%时,就是下载完成了。</p>
<p>3、解压缩安装包,并重命名文件夹。</p>
<div class="_2Uzcx_">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">tar zxvf mongodb-linux-x86_64-4.0.0.tgz
mv mongodb-linux-x86_64-4.0.0 mongodb
</pre>
</div>
<p> </p>
</div>
<p>第一步是解压缩,第二步是重命名,如图所示。</p>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="629" data-height="306"><img src="//upload-images.jianshu.io/upload_images/2103305-9cab80ce464ad5d3.png?imageMogr2/auto-orient/strip|imageView2/2/w/629/format/webp"></div>
</div>
<div class="image-caption">解压缩</div>
</div>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="535" data-height="36"><img src="//upload-images.jianshu.io/upload_images/2103305-5a458bbfca75960a.png?imageMogr2/auto-orient/strip|imageView2/2/w/535/format/webp"></div>
</div>
<div class="image-caption">重命名</div>
</div>
<p>4、配置环境变量</p>
<div class="cnblogs_code">
<pre>vim /etc/profile</pre>
</div>
<p> </p>
<p>在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加如下内容:</p>
<div class="_2Uzcx_">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">Set Mongodb
export PATH</span>=/usr/mongodb/bin:$PATH</pre>
</div>
<p> </p>
</div>
<p>保存后通过下面的命令使环境变量生效:</p>
<div class="_2Uzcx_">
<div class="cnblogs_code">
<pre>cd ~<span style="color: rgba(0, 0, 0, 1)">
source </span>/etc/profile</pre>
</div>
</div>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="627" data-height="413"><img src="//upload-images.jianshu.io/upload_images/2103305-e6254a19c956fe7c.png?imageMogr2/auto-orient/strip|imageView2/2/w/627/format/webp"></div>
</div>
<div class="image-caption">设置环境变量</div>
</div>
<p>5、创建数据库目录</p>
<div class="_2Uzcx_">
<div class="cnblogs_code">
<pre>cd /usr/<span style="color: rgba(0, 0, 0, 1)">mongodb
touch mongodb.conf
mkdir db
mkdir log
cd log
touch mongodb.log</span></pre>
</div>
<p> </p>
</div>
<p>6、修改mongodb配置文件。</p>
<div class="_2Uzcx_">
<div class="cnblogs_code">
<pre>vim /usr/mongodb/mongodb.conf</pre>
</div>
<p> </p>
</div>
<p>添加以下内容</p>
<div class="_2Uzcx_">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">port=27017 #端口
dbpath= /usr/mongodb/db #数据库存文件存放目录
logpath= /usr/mongodb/log/mongodb.log #日志文件存放路径
logappend=true #使用追加的方式写日志
fork=true #以守护进程的方式运行,创建服务器进程
maxConns=100 #最大同时连接数
noauth=true #不启用验证
journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
storageEngine=wiredTiger#存储引擎有mmapv1、wiretiger、mongorocks
bind_ip = 0.0.0.0#这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
</pre>
</div>
<p> </p>
</div>
<p>7、设置文件夹权限</p>
<div class="_2Uzcx_">
<div class="cnblogs_code">
<pre>cd /usr/<span style="color: rgba(0, 0, 0, 1)">mongodb
chmod </span><span style="color: rgba(128, 0, 128, 1)">777</span><span style="color: rgba(0, 0, 0, 1)"> db
chmod </span><span style="color: rgba(128, 0, 128, 1)">777</span> log</pre>
</div>
<p> </p>
</div>
<p>8、启动mongodb</p>
<div class="_2Uzcx_">
<div class="cnblogs_code">
<pre>cd ~<span style="color: rgba(0, 0, 0, 1)">
mongod </span>--config /usr/mongodb/<span style="color: rgba(0, 0, 0, 1)">mongodb.conf
网友指正:最新版本mongodb已经将</span>--config 修改为 -f (本人尚未尝试)</pre>
</div>
<p> </p>
</div>
<p>9、远程连接mongodb<br>
官网下载robo 3thttps://robomongo.org/download<br>
安装完后配置。<br>
</p>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="657" data-height="404"><img src="//upload-images.jianshu.io/upload_images/2103305-32da1842deecb61d.png?imageMogr2/auto-orient/strip|imageView2/2/w/657/format/webp"></div>
</div>
<div class="image-caption">点击creat</div>
</div>
<p> </p>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="543" data-height="382"><img src="//upload-images.jianshu.io/upload_images/2103305-64f76a9acb8f5e14.png?imageMogr2/auto-orient/strip|imageView2/2/w/543/format/webp"></div>
</div>
<div class="image-caption">请原封不动填写</div>
</div>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="549" data-height="398"><img src="//upload-images.jianshu.io/upload_images/2103305-5030658381e9e09f.png?imageMogr2/auto-orient/strip|imageView2/2/w/549/format/webp"></div>
</div>
<div class="image-caption">切换到ssh选项卡</div>
</div>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="548" data-height="350"><img src="//upload-images.jianshu.io/upload_images/2103305-2db7e4e964fd5275.png?imageMogr2/auto-orient/strip|imageView2/2/w/548/format/webp"></div>
</div>
<div class="image-caption">按图设置</div>
</div>
<br>
<p>点save保存</p>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="654" data-height="386"><img src="//upload-images.jianshu.io/upload_images/2103305-a1d94946ee09cb29.png?imageMogr2/auto-orient/strip|imageView2/2/w/654/format/webp"></div>
</div>
<div class="image-caption">点连接</div>
</div>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="330" data-height="192"><img src="//upload-images.jianshu.io/upload_images/2103305-edb4bcd27219bfca.png?imageMogr2/auto-orient/strip|imageView2/2/w/330/format/webp"></div>
</div>
<div class="image-caption">输入服务器的登录密码</div>
</div>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="258" data-height="100"><img src="//upload-images.jianshu.io/upload_images/2103305-121f804dce8f1b48.png?imageMogr2/auto-orient/strip|imageView2/2/w/258/format/webp"></div>
</div>
<div class="image-caption">连接成功</div>
</div>
<p>10、如何关闭数据库<br>
查看pid</p>
<div class="_2Uzcx_">
<div class="cnblogs_code">
<pre>ps aux |grep mongodb</pre>
</div>
<p> </p>
</div>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="864" data-height="67"><img src="//upload-images.jianshu.io/upload_images/2103305-35e105c0e31eca29.png?imageMogr2/auto-orient/strip|imageView2/2/w/864/format/webp"></div>
</div>
<div class="image-caption">pid</div>
</div>
<div class="_2Uzcx_">
<div class="cnblogs_code">
<pre>sudo kill <span style="color: rgba(128, 0, 128, 1)">5314</span></pre>
</div>
<p> </p>
</div>
<p>即可关闭数据库</p>
<h3>2018年7月30日补充:</h3>
<p>授权登录<br>
在日常工作中我们不可能把数据库设置为免认证登录并暴露在公网下,所以我们需要为数据库添加用户名和密码,具体操作如下:(文章来自ChasenKaos,转发请注明。谢谢 原文:https://www.jianshu.com/p/994bc7b19b26)</p>
<p>1、修改前文提到的conf文件,命令如下:</p>
<div class="_2Uzcx_">
<div class="cnblogs_code">
<pre>cd /usr/<span style="color: rgba(0, 0, 0, 1)">mongodb
vim mongodb.conf</span></pre>
</div>
<p> </p>
</div>
<p>打开后如图:</p>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="803" data-height="204"><img src="//upload-images.jianshu.io/upload_images/2103305-3127712b1e965dde.png?imageMogr2/auto-orient/strip|imageView2/2/w/803/format/webp"></div>
</div>
<div class="image-caption">image.png</div>
</div>
<p>我们把noauth那一行,前面加上#,注释掉。<br>
再在最后一行添加 auth = true<br>
完整代码如下:</p>
<div class="_2Uzcx_">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">port=27017 #端口
dbpath= /usr/mongodb/db #数据库存文件存放目录
logpath= /usr/mongodb/log/mongodb.log #日志文件存放路径
logappend=true #使用追加的方式写日志
fork=true #以守护进程的方式运行,创建服务器进程
maxConns=100 #最大同时连接数
#noauth = true #不启用验证
journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
storageEngine=wiredTiger#存储引擎有mmapv1、wiretiger、mongorocks
bind_ip = 0.0.0.0#这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
auth = true #用户认证
</pre>
</div>
<p> </p>
</div>
<p>保存退出。</p>
<p>2、关闭数据库,前文已经提到了方法,我这里只做操作,如图:</p>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="873" data-height="66"><img src="//upload-images.jianshu.io/upload_images/2103305-af2dd4027d4e1041.png?imageMogr2/auto-orient/strip|imageView2/2/w/873/format/webp"></div>
</div>
<div class="image-caption">image.png</div>
</div>
<p>3、启动数据库,请参照前文方法,如图:</p>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="642" data-height="67"><img src="//upload-images.jianshu.io/upload_images/2103305-ca002bc6a994660d.png?imageMogr2/auto-orient/strip|imageView2/2/w/642/format/webp"></div>
</div>
<div class="image-caption">image.png</div>
</div>
<p>插曲:在添加用户名之前应该先执行./mongo命令先打开mongodb数据库<br>
来自网友@OldX_cea8</p>
<p>4、依次执行下列命令 添加用户名</p>
<div class="_2Uzcx_">
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">使用admin数据库</span>
<span style="color: rgba(0, 0, 0, 1)">use admin
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">给admin数据库添加管理员用户名和密码,用户名和密码请自行设置</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)">123456</span><span style="color: rgba(128, 0, 0, 1)">"</span>,roles:[<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)">]})
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">验证是否成功,返回1则代表成功</span>
db.auth(<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)">123456</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
</span><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)">use test
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">为test创建用户,用户名和密码请自行设置。</span>
db.createUser({user: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">test</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)">123456</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)">test</span><span style="color: rgba(128, 0, 0, 1)">"</span> }]})</pre>
</div>
<p> </p>
</div>
<p>执行完后,ctrl + c结束shell,并通过关闭,打开进行重启数据库。</p>
<p>5、通过robo 3t连接。<br>
connection标签页</p>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="537" data-height="379"><img src="//upload-images.jianshu.io/upload_images/2103305-3dab6623cc509678.png?imageMogr2/auto-orient/strip|imageView2/2/w/537/format/webp"></div>
</div>
<div class="image-caption">connection标签页</div>
</div>
<p>authentication标签页</p>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="544" data-height="379"><img src="//upload-images.jianshu.io/upload_images/2103305-62518bf6d0393f72.png?imageMogr2/auto-orient/strip|imageView2/2/w/544/format/webp"></div>
</div>
<div class="image-caption">authentication标签页</div>
</div>
<p>ssh标签页</p>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"> </div>
<div class="image-view" data-width="539" data-height="381"><img src="//upload-images.jianshu.io/upload_images/2103305-7a159b6f4f1a787b.png?imageMogr2/auto-orient/strip|imageView2/2/w/539/format/webp"></div>
</div>
<div class="image-caption">ssh标签页</div>
</div>
<p>点击save后,连接即可,如果出现报错,请核对自己输入的信息是否有误。</p>
</div>
<p>
<br><br>作者:派大C<br>链接:https://www.jianshu.com/p/994bc7b19b26</p>
<p> </p><br><br>
来源:https://www.cnblogs.com/jasonLiu2018/p/13088971.html
頁:
[1]