mongodb下载安装配置使用

介绍

mongodb
mongos

下载方法

1.官网下载
官网
要么是deb安装包
要么是tgz压缩包,解压并添加环境变量即可使用
参考教程
2.apt下载
3.yum
yum下载教程

错误汇总

Failed to start mongod.service: Unit mongod.service not found.

创建mongodb.service文件
sudo vim /etc/systemd/system/mongodb.service
文件内容如下

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload #重新加载配置文件
sudo systemclt start mongodb

启用访问控制,默认没有密码!

https://docs.mongoing.com/security/enable-access-control

官网
使用mongosh先创建最高权限用户,再创建子用户

启用审计

https://cloud.tencent.com/developer/article/1055684

常用指令

mongod 启动服务端
mongo 启动客户端
mongosh 现在推荐使用的客户端

排错方法

1.journalctl命令,查看系统日志
journalctl -e 跳转到尾部,即最新的日志
2.systemctl status mongodb 查看启动服务的日志
3.查看mongodb自身的日志
vim /var/log/mongodb/mongodb.log

误区

mongo是客户端
mongodb-org-server_5.0.2_amd64.deb是服务端
重装可以解决。

mongos是Mongos是Sharded cluster的访问入口,即访问mongodb集群的客户端
如下图中的集群才需要mongos作为客户端
file

用处

爬虫的数据可以存放在mongodb中,包括图片(小的建议放在文件中)。

数据量 存储介质 特点
json文本,excel表 不支持多进程读写,因此不适合多进程爬虫
数据不复杂 关系型数据库如sqlite,mysql sqlite无需安装,是零配置数据库。mysql可以远程访问,而sqlite不可以。两者都要先建表,不支持多进程读写,因此不适合多进程爬虫
数据复杂甚至需要二次清洗加工的 存储到mongodb 不需要像关系型数据库那样去定义表结构