最近在安装环境,发现博客里居然没有记录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。
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]
而这些内容在日志里其实也是有的,一条一条来看吧。
echo never >> /sys/kernel/mm/transparent_hugepage/enabled
echo never >> /sys/kernel/mm/transparent_hugepage/defrag
但是,开机就回来了,找了很多,没有找到永久修复的方法,都说是开机限制性这两个语句,就是写进/etc/rc.local 我一直依赖是很抵触写到这个文件里的。因为以前填过坑,写进去,然后启动不起来了,不过这既然是系统配置,写就写进去吧。
说实话,我是个懒人,这是必修配的,但是,我没成功。无论我想要用centos7的开机脚本,还是配在rc.local中,都没有用。所以,这里暂时空白,我先写了两个脚本临时用着。