首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在腾讯云主机中Centos7 设置Mongodb开机启动-自定义服务

在腾讯云主机中Centos7 设置Mongodb开机启动-自定义服务

作者头像
ccf19881030
发布2020-02-20 11:04:44
2.3K0
发布2020-02-20 11:04:44
举报
文章被收录于专栏:ccf19881030的博客ccf19881030的博客

这两天在跟着全栈之巅的视频学习NodeJs+Express+MongoDB编写相关的项目时,发现在Windows下安装MongoDB很顺利,将MongoDB安装后以服务的方式运行。由于自己买了腾讯云主机,系统是CentOS7.5,本来想通过mongodb.conf配置文件的方式运行MongoDB的如下:

/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf

不过总是出现问题,后来直接使用指定数据库路径和日志文件的方式运行成功,命令如下:

/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/db --logpath=/usr/local/mongodb/logs/mongodb.log --logappend --fork

也不知道具体是什么原因。

一.官网下载 mongodb,解压到指定目录

我下载的MongoDB版本是3.4.18:mongodb-linux-x86_64-3.4.18.tgz 下载之后,我把mongodb-linux-x86_64-3.4.18.tgz文件解压并且安装到了/usr/local目录 CentOS7.5本机mongodb目录为:/usr/local/mongodb 安装后的MongoDB目录下的文件结构如下图所示:

mongodb的安装目录
mongodb的安装目录

二 .编写mongodb的配置文件,主要指定数据库文件,日志文件,以及一些启动参数.

(1).在mongodb下新建data文件夹,以及其子文件夹db;然后创建logs文件夹, 在logs中新建mongodb.log日志文件,其中db文件夹用来存储数据库文件,logs用来存储日志文件

cd /usr/local/mongodb
mkdir -p data/db	
mkdir logs
touch logs/mongodb.log

(2).在、usr/localmongodb/bin/目录下新建mongodb.conf配置文件,内容如下:

#端口  
port=27017 
#数据库存文件存放目录  
dbpath= /usr/local/mongodb/data/db 
#日志文件存放路径  
logpath= /usr/local/mongodb/logs/mongodb.log 
#使用追加的方式写日志  
logappend=true 
# 设置为true,修改数据目录存储模式,每个数据库的文件存储在DBPATH指定目录的不同的文件夹中。
# 使用此选项,可以配置的MongoDB将数据存储在不同的磁盘设备上,以提高写入吞吐量或磁盘容量。默认为false。
# 建议一开始就配置此选项
directoryperdb=true

# 后台运行
#以守护程序的方式启用,即在后台运行  
fork=true 
#最大同时连接数  
maxConns=100 
#不启用验证  
noauth=true 
#每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
journal=true 
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
#存储引擎有mmapv1、wiretiger、mongorocks
storageEngine=wiredTiger  
 #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
bind_ip = 0.0.0.0 
#bind_ip = 127.0.0.1
相关字段说明

dbpath:数据库文件路径

logpath:日志文件路径

logappend:是否追加日志

port:端口

fork:是否以后台进程启动

auth:是否启动授权认证

nohttpinterface:是否支持HTTP形式访问

三.编写自定义服务

(1).在/etc/systemd/system/目录下新建mongodb.service文件,即定义MongoDB服务的启动、关闭方式,内容如下

[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
#ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf
ExecStart=/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/db --logpath=/usr/local/mongodb/logs/mongodb.log --logappend --fork
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --dbpath=/usr/local/mongodb/data/db --logpath=/usr/local/mongodb/logs/mongodb.log --logappend --fork
ExecReload=/bin/kill -s HUP $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

(2).设置权限

cd /etc/systemd/system
chmod 754 mongodb.service

(3).启动关闭服务,设置开机启动

#启动服务
systemctl start mongodb.service
#关闭服务
systemctl stop mongodb.service
#开机启动
systemctl enable mongodb.service
将mongodb的一些可执行文件目录bin添加到环境变量中

修改/etc/profile文件,在其末尾加上如下语句,即将mongodb的bin目录加到PATH环境变量中,是其mongod和mongo命令可以被终端shell识别,命令如下所示: export MONGODB_HOME=/usr/local/mongodb export PATH=MONGODBHOME/bin:MONGODB_HOME/bin:MONGODBH​OME/bin:PATH 然后在终端中使用source /etc/profile使得配置生效。

查看mongodb服务的运行状态

注意:conf和service文件中设置路径,注意需要设置为绝对路径。不过奇怪的是我使用指定mongodb.conf配置的文件方式总是出错,后来直接用–dbpath和–logpath分别指定数据文件和日志文件反而能够正常启动。 使用systemctl enable mongodb.service将mongodb设置成开机自启动,使用systemctl start mongodb.service启动Mongodb,使用systemctl stop mongodb.service关闭mongodb服务。 另外可以通过systemctl status mongodb查看mongodb查看其服务的状态,如下图所示:

查询mongodb服务的运行状态
查询mongodb服务的运行状态

通过上面截图的绿色部分的active:running可以看出mongodb服务是成功启动的。

参考资料

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.官网下载 mongodb,解压到指定目录
  • 二 .编写mongodb的配置文件,主要指定数据库文件,日志文件,以及一些启动参数.
    • 相关字段说明
    • 三.编写自定义服务
      • 将mongodb的一些可执行文件目录bin添加到环境变量中
        • 查看mongodb服务的运行状态
        • 参考资料
        相关产品与服务
        云数据库 MongoDB
        腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档