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

目录

简介:

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命令进行服务管理

猜你喜欢

转载自blog.csdn.net/weixin_43820024/article/details/131723528