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 mongodb
mkdir -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 bin
pwd
在启动命令前我们先通过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设置登录用户