目录
简介:
官方地址:mongodb: the developer data platform | mongodb
mongodb是一个开源的nosql数据库管理系统,它使用文档型数据模型来存储数据,以下是mongodb的基本信息
-
文档型数据存储:mongodb使用bson(binary json)格式存储数据,它是一种类似于json的二进制表示形式。每个文档是一个包含字段和值的键值对集合,类似于关系型数据库中的行。
-
非结构化数据:与传统的关系型数据库相比,mongodb是一个非结构化数据库,不需要提前定义表结构和字段。每个文档可以具有不同的结构,可以根据需要灵活地添加、删除和修改字段。
-
可扩展性:mongodb具有良好的可扩展性,可以支持大规模数据存储和高吞吐量的工作负载。它支持水平扩展,通过分片(sharding)将数据分布在多个服务器上,以实现更好的性能和容量。
-
强大的查询功能:mongodb提供了丰富的查询功能,支持复杂的查询操作,包括条件查询、范围查询、聚合查询、文本搜索等。它还支持创建索引来加快查询速度。
-
高可用性和容错性:mongodb支持复制集(replica set),它是一组具有相同数据集的mongodb实例。复制集提供了数据的冗余备份和自动故障转移功能,以实现高可用性和容错性。
-
社区活跃和丰富的生态系统: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
命令进行服务管理
发表评论