介绍
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作为客户端
用处
爬虫的数据可以存放在mongodb中,包括图片(小的建议放在文件中)。
数据量 | 存储介质 | 特点 |
---|---|---|
小 | json文本,excel表 | 不支持多进程读写,因此不适合多进程爬虫 |
数据不复杂 | 关系型数据库如sqlite,mysql | sqlite无需安装,是零配置数据库。mysql可以远程访问,而sqlite不可以。两者都要先建表,不支持多进程读写,因此不适合多进程爬虫 |
数据复杂甚至需要二次清洗加工的 | 存储到mongodb | 不需要像关系型数据库那样去定义表结构 |