推荐的 MongoDB 安装文档
简介:
MongoDB 是一个由 C++ 语言编写的基于分布式文件存储的数据库,是目前最像关系型数据库的非关系型数据库。
最近写爬虫, 思来想去觉得还是用 MongoDB 比较方便。
一、安装
# 官方文档:https://docs.mongodb.com/manual/administration/install-community/
1、添加 YUM 源
shell > vim /etc/yum.repos.d/mongodb-org-3.6.repo
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=
enabled=
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
2、直接安装就好了
shell > yum -y install mongodb-org or shell > yum -y install mongodb-org-3.6. mongodb-org-server-3.6. mongodb-org-shell-3.6. mongodb-org-mongos-3.6. mongodb-org-tools-3.6.
# 这里遇到个小问题, 记录一下
# https://repo.mongodb.org/yum/redhat/6/mongodb-org/3.6/x86_64/repodata/repomd.xml: [Errno 14] problem making ssl connection
# Cannot retrieve repository metadata (repomd.xml) for repository: mongodb-org-3.6. Please verify its path and try again
# yum 报错, 网上说把该 .repo 的 enabled 设为 0, 然后执行 yum -y install ca-certificates, 之后再设为 1, 就可以安装了
# 我这里试了没成功, 后来把 .repo 中的 https 改为 http 就可以了
二、配置
shell > grep -vP '^#|^$' /etc/mongod.conf
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
storage:
dbPath: /data/mongo_data
journal:
enabled: true
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo
net:
port:
bindIp: 0.0.0.0 # Listen to local interface only, comment to listen on all interfaces. # 修改了 dbPath、port、bindIp shell > mkdir /data/mongo_data && chown -R mongod.mongod /data/mongo_data
# 数据目录不创建, 无法启动
三、启动
shell > /etc/init.d/mongod start
shell > chkconfig --level mongod on
四、客户端连接
shell > mongo --port
# 这里会看到一些警告信息, 照着改一改就好了
shell > echo never > /sys/kernel/mm/transparent_hugepage/defrag
shell > echo never > /sys/kernel/mm/transparent_hugepage/enabled
# 关闭透明大页, 记得加入 /etc/rc.local
shell > vim /etc/security/limits.conf
* - nproc
* - nofile
# 进程数、文件描述符, ulimit -u 64000、ulimit -n 64000 (好像还不行...)
# 官方文档:https://docs.mongodb.com/manual/reference/ulimit/#recommended-settings
五、安全
# 认证类型:https://docs.mongodb.com/manual/security/
# 配置管理:https://docs.mongodb.com/manual/reference/configuration-options/
(我)选择(的是)基于角色的访问控制
# 相关文档:https://docs.mongodb.com/manual/core/authorization/
1、创建用户、分配角色
# 相关文档:https://docs.mongodb.com/manual/reference/method/
# 默认角色:https://docs.mongodb.com/manual/core/security-built-in-roles/
shell > db.createUser({"user": "root", "pwd": "73osZMb", "roles": [{"role": "root", "db": "admin"}]})
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
# 这样就创建一个用户为 root、密码、角色为 root (超级用户)、授权 db 为 admin。
# 关于系统有哪些角色、每种角色的功能, 还需参考上面提供的官方文档
2、开启授权
shell > vim /etc/mongod.conf security:
authorization: enabled
# 开启授权, /etc/init.d/mongod restart
3、验证
shell > mongo --port
MongoDB shell version v3.6.4
connecting to: mongodb://127.0.0.1:27007/
MongoDB server version: 3.6.
> show dbs
--11T15::35.653+ E QUERY [thread1] Error: listDatabases failed:{
"ok" : ,
"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0, $db: \"admin\" }",
"code" : ,
"codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js::
Mongo.prototype.getDBs@src/mongo/shell/mongo.js::
shellHelper.show@src/mongo/shell/utils.js::
shellHelper@src/mongo/shell/utils.js::
@(shellhelp2):: # 提示认证失败 > use admin
switched to db admin
> db.auth("root", "73osZMb") > show dbs
admin .000GB
config .000GB
local .000GB # 尝试 root 角色权限 > use spider
> db.sp_douban.insertOne({"id": , "name": "警察故事"})
{
"acknowledged" : true,
"insertedId" : ObjectId("5af5450510d201ef1d48d3a4")
}
> db.sp_douban.findOne()
{ "_id" : ObjectId("5af5450510d201ef1d48d3a4"), "id" : , "name" : "警察故事" }
> db.sp_douban.deleteOne({"id": })
{ "acknowledged" : true, "deletedCount" : }
> db.sp_douban.find()
# 可以开到该用户可以创建数据库、创建表、插入、查询、删除
# 好, 先这样, 搞爬虫去!
推荐的 MongoDB 安装文档的更多相关文章
- Oracle 11g 单实例安装文档
这里介绍在Red Hat Enterprise Linux Server release 5.7 (Tikanga)下安装ORACLE 11.2.0.1.0的过程,本文仅仅是为了写这样安装指导文档而整 ...
- 推荐一套.NET文档处理组件Spire.Office
原文:推荐一套.NET文档处理组件Spire.Office 以前的项目中用到一点Word简单处理的功能(文字替换和转PDF格式),当时使用的是一套COM组件,必须在服务器上安装office环境.最近考 ...
- Oracle 12c RAC 安装文档
参考文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/index.html https://docs. ...
- Greenplum/Deepgreen(集群/分布式)安装文档
Deepgreen分布式安装文档 环境准备 1.安装VMware虚拟机软件,然后在VMware安装三台Linux虚拟机(使用centos7版本) 2.使用的虚拟机如下: 192.168.136.155 ...
- 环境安装文档(for Ubuntu)
这个文档的目标是:各位小伙伴通过这个文档,可以在一台全新的 Ubuntu 电脑上搭建平常开发使用的环境,主要包含 Node.js, git 和 编辑器部分. 这是针对 Ubuntu 系统的安装文档,W ...
- Mysql5.7.20安装文档
Mysql5.7.20安装文档 一.Linxu下数据库的恢复和备份 当我们MySQL数据库保存重要数据的时候,备份工作极为重要.本文介绍如何使用mysqldump备份和恢复数据,使用该方法,可以将数据 ...
- airflow2.0.2分布式安装文档
需要安装的组件 组件 功能 Airflow Webserver 查询元数据以监控和执行DAGs的web界面. Airflow Scheduler 它检查元数据数据库中的DAG和任务的状态,在必要时创建 ...
- ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档
ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报 分类: Oracle RA ...
- linkedin开源的kafka-monitor安装文档
linkedin开源的kafka-monitor安装文档 linkedin 开源的kafka-monitor的安装使用可以参考官方的readme:流程介绍的已经比较清楚,但是还是有一些地方需要修正.让 ...
随机推荐
- Oracle 11gR2 rac 的各项服务说明
安装结束后,会产生一些后台进程来确保集群正常工作并能够与外部通讯.其中的一些有序linux平台的要求需要以root用户权限来启动.比如,网络配置的改动就需要更高的权限.其他后台进程将以grid软 ...
- http 301 和 302的区别
301 永久重定向 301 重定向是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址. 301 重定向是 ...
- 设置zedgraph鼠标拖拽和局部放大属性(转帖)
说一下几个属性的意义和具体应用: (1)鼠标拖拽显示区域 PanModifierKeys ->> Gets or sets a value that determines which mo ...
- vqmod for opencart插件制作进阶与技巧
FROM: http://www.sdtclass.com/4799.html 15年的时候,我写过一篇文章<略谈 vqmod for opencart 插件制作过程>,也不知道被哪些人抄 ...
- sql 判断 数据库 表 字段 是否存在
select * From master.dbo.sysdatabases where name='数据库名'select * from sysobjects where id = object_id ...
- Log4j2的基本使用
Log4j2是Log4j1.x的的升级版,其中也有很大的不同,最大的区别就是由以前的properties配置文件改为xml/json/yaml配置文件. 其中配置文件的位置官方说明如下: Log4j ...
- Java技术专题之JVM你的内存泄露了吗?
一.从一个例子开始 关于JVM的内存泄露,让我们从下面一个例子开始吧,大家来判断一下如果按照下面这种分配方式,会不会出现内存泄露呢? import java.util.List; import jav ...
- vs2017 编译JRTPLIB
一. JRTPLIB简介 RTP 是目前解决流媒体实时传输问题的最好办法,而JRTPLIB是一个用C++语言实现的RTP库,它完全遵循RFC 1889设计,目前已经可以运行在Windows.Linux ...
- Java 浅析 Thread.join()
概要 本文分为三部分对 Thread.join() 进行分析: 1. join() 的示例和作用 2. join() 源码分析 3. 对网上其他分析 join() 的文章提出疑问 1. join() ...
- maven学习(2)-在Eclipse 中使用Maven
第一节:m2eclipse 插件安装 打开Eclipse,点击菜单Help - > Install New Software 点击Add 按钮Name:m2e location: http:// ...