Linux部署MongoDB

下载安装包

打开网站 https://www.mongodb.com/download-center/community查找与Linux版本一致的MongoDB安装包。我这里选择安装包格式为tgz压缩文件,版本是RHEL7.0 Linux 64-bit X64

回到Xshell控制台,输入下载命令

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.3.tgz

这时候会在当前工作目录下将mongodb-linux-x86_64-rhel70-4.2.3.tgz下载下来。
如下图:

解压安装包

输入以下命令

tar -zxvf mongodb-linux-x86_64-rhel70-4.2.3.tgz  

将解压后的目录剪切到一个新目录 mongodb

mv mongodb-linux-x86_64-rhel70-4.2.3 mongodb

创建数据库目录

MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。我们到mongodb下新建data/db目录

这里我把data目录也放置mongodb/mongodb下

cd mongodbmkdir -p data/db

创建日志目录

还是在mongodb目录下继续创建子目录log,后续mongodb的日志文件会存储在这目录下。

mkdir log

创建配置文件目录

还是在mongodb下,我们需要创建一个etc子目录,在子目录下创建mongodb.conf
重点:mongodb.conf文件非常重要,它的配置如果错误则mongodb启动会失败。

mkdir etc

创建好etc配置文件目录后我们输入ls查看mongodb目录下的信息

通过上图我们可以看得到mongodb的绝对路径和该目录下的详情信息,现在添加mongodb.conf

vim ./etc/mongodb.conf

在新建的mongodb.conf输入下面内容

dbpath=/root/mongodb/data/db  #数据文件存放目录logpath=/root/mongodb/log/mongodb.log   #日志文件port=27017   #端口fork=true    #以守护程序的方式启用,即在后台运行journal=false

这里需要注意我没加storageEngine=mmapv 这一行,网上很多人加了,这一行是针对以前版本的。以前Mongodb的引擎版本通过配置文件制定为mmapv,现在MongoDB默认的存储引擎就已经是WiredTiger了,加入了会出报“ERROR: child process failed, exited with error number 100”的错。

ok,现在配置文件已经好了,cat ./etc/mongodb.conf查看下如下图

启动Mongodb

新安装的Mongodb这时候是木有用户名和密码啥的,直接cd工作目录到mongodb目录下的bin目录

cd binpwd

在启动命令前我们先通过ps -ef 给大家确认确实Mongodb目前是没有运行的,如下图

在/root/mongodb/bin工作目录下执行下面命令开始启动Mongodb

./mongod --config /root/mongodb/etc/mongodb.conf

执行结果如下表示Mongodb已启动

再次输入ps -ef可查询的到

也可以通过下面命令查看27017端口的监听信息

netstat -lanp | grep "27017"

在远程客户端连接

之前在windows服务器上安装好Mongodb后只要服务已启动,端口确认打开则可以安装一些Mongodb客户端在本地客户端上连接和使用了。现在换成Linux,我也想要在客户端享受同样待遇,打开NoSQLBooster for MongoDB工具,创建一个新的链接,测试下是否能够链接成功,如下图

点击 Test Connection按钮,得到的结果是半天无响应,最后出来的错误信息如下图,我知道结果的。。。意料之内,毕竟成功没有这么简简单单啊~

我再次核查下我的腾讯云服务器安全组,确定27017是不是真的开放了,好吧检查发现确实安全组木有添加。。。 赶忙加上~

开放端口后发现还是不行,输入下面命令查看了下

netstat -nputl

可以主席的是我们的27017绑定的ip是127.0.0.1 意味着只有本地可以连接Mongodb。

查了下官网,发现我们可以在配置文件中添加bind_ip进行设置,我们先停止进程再设置。
mongodb.conf配置文件说明地址:

https://docs.mongodb.com/manual/reference/program/mongod/#bin.mongod

停止Mongodb进程
这里需要额外注意,如果啥也不管直接重启可能下次无法启动,下次再启动这种意外关闭Mongodb服务的需要通过几种方式才可以,具体参考 http://f.dataguru.cn/thread-107361-1-1.html

这里我采取 kill -15 <pid> 方式关闭进程,先通过ps -ef | grep mongodb* 查到pid
如下图

找到了pid为9735的进程,输入下面命令干掉

kill -15 9735

配置mongodb.conf
我们在mongodb.conf加上bind_ip 如下图(切记字段名和等于号之间别留空格!)
更改后的配置文件如下图

cd到/root/mongodb/bin目录下,再次执行下面命令启动MongoDB

./mongod --config /root/mongodb/etc/mongodb.conf

这个时候我们再从本地客户端工具试下

还是不行,不过不是连接不上,而是我本地客户端版本太低,更新下即可,更新后连接如下

大功告成! 但是现在问题是只要是互联网上的人知道了我们Mongodb的地址后均可对数据进行增删改查,这样是不合理的,这时候就要开始创建用户,并设置登录步骤啦~ 下一篇博客写如何给Linux上的MongoDB设置登录用户

(0)

相关推荐