安装mongodb

前言

最近在安装环境,发现博客里居然没有记录mongodb的安装,于是就写一篇记录在此。我记得我装过,很简单,所以就没有整理。但是,每次都找还是麻烦的,就记录在这里一次吧。我安装的系统是centos7,mongo的版本是3.6.4

下载

官网的下载安装包挺全的,我选择的是tgz格式的下载,radhat7的版本。mongodb-linux-x86_64-rhel70-3.6.4.tgz。下载下来后,我解压到了/opt/mongodb,就打算安装在这里了。

安装

环境变量

在/etc/profile下添加如下内容,然后source /etc/profile 让环境变量生效。

export PATH=/opt/mongodb/bin:$PATH

创建数据库目录

执行如下命令创建:

mkdir -p /home/mongo-data/db

说是这个目录在mongodb启动的时候是不会自动创建的。我们把应用程序安装在了opt,我习惯性的把数据存在home下,大家喜欢也可以换成自己喜欢的目录。默认路径是/data/db。

启动mongodb

mongod --dbpath /home/mongo-data/db //由于我们没有使用默认路径,所以需要使用指定数据库路径,默认路径就可以不加参数了

上面的启动是前台启动,ctrl-c就退出了,用户注销也退出了。所以我们需要用后台服务来启动。

mongod -f /etc/mongodb/mongodb.cnf

上面这个就是启动命令啦。因为需要的配置比较多,所以,我就创建了个配置文件,内容如下:

dbpath=/home/mongo-data/db
logpath=/home/mongo-data/log/mongo.log #日志地址
logappend=true #日志附加
fork=true #后台启动开启
port=27017

可以看到除了数据库地址和端口号,我们还指明了后台启动开启,以及日志相关的配置。到此,mongo就安装完成了。

后面的坑

刚才的内容,启动起来看似没有问题,但是,我发现,我进不去,而且当我本地用mongo进去看的时候,看到了这么几条警告:

MongoDB shell version v3.6.4
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.4
Server has startup warnings: 
2018-06-10T16:02:45.324+0800 I CONTROL  [initandlisten] 
2018-06-10T16:02:45.325+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-06-10T16:02:45.325+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2018-06-10T16:02:45.325+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2018-06-10T16:02:45.325+0800 I CONTROL  [initandlisten] 
2018-06-10T16:02:45.325+0800 I CONTROL  [initandlisten] ** WARNING: This server is bound to localhost.
2018-06-10T16:02:45.325+0800 I CONTROL  [initandlisten] **          Remote systems will be unable to connect to this server. 
2018-06-10T16:02:45.325+0800 I CONTROL  [initandlisten] **          Start the server with --bind_ip 
to specify which IP 2018-06-10T16:02:45.325+0800 I CONTROL [initandlisten] ** addresses it should serve responses from, or with --bind_ip_all to 2018-06-10T16:02:45.325+0800 I CONTROL [initandlisten] ** bind to all interfaces. If this behavior is desired, start the 2018-06-10T16:02:45.325+0800 I CONTROL [initandlisten] ** server with --bind_ip 127.0.0.1 to disable this warning. 2018-06-10T16:02:45.325+0800 I CONTROL [initandlisten] 2018-06-10T16:02:45.325+0800 I CONTROL [initandlisten] 2018-06-10T16:02:45.325+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2018-06-10T16:02:45.325+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2018-06-10T16:02:45.325+0800 I CONTROL [initandlisten] 2018-06-10T16:02:45.325+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2018-06-10T16:02:45.325+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2018-06-10T16:02:45.325+0800 I CONTROL [initandlisten]

而这些内容在日志里其实也是有的,一条一条来看吧。

  • Access control is not enabled for the database。这个是,因为新版本的mongodb增加了安全机制,推荐使用用户名密码进行验证,否则就会报错。
  • WARNING: You are running this process as the root user, which is not recommended。不推荐使用root用户启动。开发环境,为了方便,就不顾这么多了。
  • This server is bound to localhost.这似乎是我们登录不进去的原因,默认仅绑定了localhost,我们需要把这个绑定去掉。在配置文件中添加配置:bind_ip=0.0.0.0 重启,然后就可以登录进去了。
  • /sys/kernel/mm/transparent_hugepage/enabled is ‘always’.和/sys/kernel/mm/transparent_hugepage/defrag is ‘always’. 说是这是关掉大内存页面的设置,下面两条语句可以关掉:
echo never >>  /sys/kernel/mm/transparent_hugepage/enabled
echo never >>  /sys/kernel/mm/transparent_hugepage/defrag

但是,开机就回来了,找了很多,没有找到永久修复的方法,都说是开机限制性这两个语句,就是写进/etc/rc.local 我一直依赖是很抵触写到这个文件里的。因为以前填过坑,写进去,然后启动不起来了,不过这既然是系统配置,写就写进去吧。

开机启动

说实话,我是个懒人,这是必修配的,但是,我没成功。无论我想要用centos7的开机脚本,还是配在rc.local中,都没有用。所以,这里暂时空白,我先写了两个脚本临时用着。

你可能感兴趣的:(安装mongodb)