当前位置: 代码网 > it编程>数据库>Nosql > MongoDB——Centos五步安装并设置服务自启(一)

MongoDB——Centos五步安装并设置服务自启(一)

2024年07月31日 Nosql 我要评论
讲述centos系统安装mongodb的过程,通过配置文件conf来启动以及如何通过systemctl来控制MongoDB的服务,设置服务自启动。

目录

简介:

1、下载

2、解压

3、启动

4、配置

5、系统服务自启


简介:

官方地址:mongodb: the developer data platform | mongodb

mongodb是一个开源的nosql数据库管理系统,它使用文档型数据模型来存储数据,以下是mongodb的基本信息

  1. 文档型数据存储:mongodb使用bson(binary json)格式存储数据,它是一种类似于json的二进制表示形式。每个文档是一个包含字段和值的键值对集合,类似于关系型数据库中的行。

  2. 非结构化数据:与传统的关系型数据库相比,mongodb是一个非结构化数据库,不需要提前定义表结构和字段。每个文档可以具有不同的结构,可以根据需要灵活地添加、删除和修改字段。

  3. 可扩展性:mongodb具有良好的可扩展性,可以支持大规模数据存储和高吞吐量的工作负载。它支持水平扩展,通过分片(sharding)将数据分布在多个服务器上,以实现更好的性能和容量。

  4. 强大的查询功能:mongodb提供了丰富的查询功能,支持复杂的查询操作,包括条件查询、范围查询、聚合查询、文本搜索等。它还支持创建索引来加快查询速度。

  5. 高可用性和容错性:mongodb支持复制集(replica set),它是一组具有相同数据集的mongodb实例。复制集提供了数据的冗余备份和自动故障转移功能,以实现高可用性和容错性。

  6. 社区活跃和丰富的生态系统:mongodb拥有庞大的开发者社区和丰富的生态系统,提供了各种工具、驱动程序和库,以满足不同编程语言和应用程序的需求。

mongodb适用于许多应用场景,特别是对于需要处理大量非结构化数据、需要灵活性和可扩展性的应用程序。它广泛应用于web应用程序、大数据分析、实时分析、物联网(iot)等领域。

1、下载

官网下载地址:download mongodb community server | mongodb

 选择社区版本,是免费的,然后选择对应的系统,这里以centos为例,选择压缩包下载。

如果你的选择和我是一样,可直接点击以下链接下载:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-6.0.8.tgz

你可以选择直接在服务器上使用wget命令进行下载

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

也可以下载到本地之后,在通过sftp上传到服务器中。

2、解压

# 解压
tar -zxvf mongodb-linux-x86_64-rhel70-6.0.8.tgz

# 重命名
mv mongodb-linux-x86_64-6.0.8 mongodb

mongodb 服务在启动时需要指定数据存储的目录。如果没有指定的话,默认会去找 /data/db/ 目录,如果数据目录不存在或不可写,那么服务器端将无法启动。

# 创建数据存放目录和日志目录
cd mongodb
# data文件夹存放数据库目录
mkdir data
# logs文件夹存放操作日志信息
mkdir logs

3、启动

执行以下命令

bin/mongod --fork --dbpath=/data/mongodb/data --logpath=/data/mongodb/logs/mongo.log
  • fork:在后台运行 mongod 进程,将 mongodb 服务作为守护进程运行,如果指定了fork,则必须同时指定logpath。
  • dbpath:指定 mongodb 数据库文件的存储路径,启动服务时必须指定。
  • logpath:指定 mongodb 日志文件的存储路径,默认日志是打印在命令行中的。如果对此目录有写权限且文件不存在,则会自动创建该文件。如果日志文件已经存在,默认会覆盖掉该文件,并删除所有旧的日志。如果希望保留旧的日志,除了使用 logpath 之外,还应该使用logappend 选项。 

执行命令出现以下信息,表示启动成功

保险起见,我们监听下端口号 

lsof -i :27017

有以下信息则表示mongodb正在运行 

 

4、配置

以上的启动命令只合适在开发环境使用,实际生产环境,需要更多的mongodb的配置,比如端口号、监听的 ip 地址、认证机制等等,所以我们可以创建一个conf文件,来配置我们的mongodb。

在我们的mongdb目录下创建一个mongdb.conf 文件

# 创建目录
cd /data/mongodb
vim mongo.conf

vim命令后,按 i 键进入编辑模式,将以下配置粘贴进去,注意:6.x版本与老版本的配置不同

# 存储相关配置
storage:
  dbpath: /data/mongodb/data
  journal:
    enabled: true
  wiredtiger:
    engineconfig:
      cachesizegb: 1

# 网络相关配置
net:
  bindip: 127.0.0.1
  port: 27017

# 日志相关配置
systemlog:
  destination: file
  path: /data/mongodb/logs/mongod.log
  logappend: true

# 安全相关配置
security:
  authorization: disabled

# 复制集相关配置
replication:
  replsetname: node-1

# 其他配置项...
processmanagement:
  fork: true

使用配置方式启动mongodb

bin/mongod --config /data/mongodb/mongo.conf

5、系统服务自启

给我们的mongodb设置成系统服务,就可以简单的通过`systemctl`进行启动停止重启了

编写mongodb.service文件,如果对文件存放的目录`/etc/systemd/system`有所疑问文章末尾有说明

cd /etc/systemd/system

vim mongod

vim命令后,按 i 键进入编辑模式,将以下配置粘贴进去

[unit]
description=mongodb database server
documentation=https://docs.mongodb.org/manual
after=network.target

[service]
execstart=/data/mongodb/bin/mongod --config /data/mongodb/mongo.conf
execreload=/bin/kill -s hup $mainpid
execstop=/data/mongodb/bin/mongod --shutdown --config /data/mongodb/mongo.conf
restart=always
limitnofile=64000
limitnproc=64000

[install]
wantedby=multi-user.target

重新加载systemd服务配置

sudo systemctl daemon-reload

测试是否可以启动成功

# 现将之前运行的mongodb服务kill掉,先查询mongo运行的pid
ps -aux | grep mongo

kill <pid>

# 测试systemctl是否可以启动mongdb
sudo systemctl start mongodb
sudo systemctl start mongodb

 最后设置开机自启动

sudo systemctl enable mongodb

现在,mongodb已经被设置为系统自启,并可以使用以下systemctl命令进行管理:

  • 启动mongodb服务:sudo systemctl start mongodb
  • 停止mongodb服务:sudo systemctl stop mongodb
  • 重启mongodb服务:sudo systemctl restart mongodb
  • 查看mongodb服务状态:sudo systemctl status mongodb

请确保/data/mongodb/目录下的mongodb文件和配置正确,并具有适当的权限。

解决疑惑

在systemd的环境中,建议将服务单元文件放在/etc/systemd/system目录下,而不是/etc/init.d目录下。/etc/init.d目录是传统的sysv init脚本存放的位置,而systemd已经取代了sysv init作为linux系统的初始化系统。

systemd使用.service文件作为服务单元文件,使用systemctl命令进行服务管理。将服务单元文件放在/etc/systemd/system目录下可以更好地与systemd集成,并提供更多的服务管理功能。

如果你将服务单元文件放在/etc/init.d目录下,systemd将无法直接识别和管理该服务。虽然可以通过一些转换或兼容性设置使systemd支持sysv init脚本,但这种方法并不推荐,因为它可能会导致一些问题,并且不符合systemd的最佳实践。

因此,建议将mongodb的服务单元文件放在/etc/systemd/system目录下,以便与systemd集成,并使用systemctl命令进行服务管理

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com