博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
推荐的 MongoDB 安装文档
阅读量:7068 次
发布时间:2019-06-28

本文共 3696 字,大约阅读时间需要 12 分钟。

简介:

MongoDB 是一个由 C++ 语言编写的基于分布式文件存储的数据库,是目前最像关系型数据库的非关系型数据库。

最近写爬虫, 思来想去觉得还是用 MongoDB 比较方便。

一、安装

# 官方文档:

1、添加 YUM 源

shell > vim /etc/yum.repos.d/mongodb-org-3.6.repo[mongodb-org-3.6]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

2、直接安装就好了

shell > yum -y install mongodb-orgorshell > yum -y install mongodb-org-3.6.4 mongodb-org-server-3.6.4 mongodb-org-shell-3.6.4 mongodb-org-mongos-3.6.4 mongodb-org-tools-3.6.4

# 这里遇到个小问题, 记录一下

# 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.logstorage:  dbPath: /data/mongo_data  journal:    enabled: trueprocessManagement:  fork: true  # fork and run in background  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile  timeZoneInfo: /usr/share/zoneinfonet:  port: 27007  bindIp: 0.0.0.0  # Listen to local interface only, comment to listen on all interfaces.# 修改了 dbPath、port、bindIpshell > mkdir /data/mongo_data && chown -R mongod.mongod /data/mongo_data

# 数据目录不创建, 无法启动

三、启动

shell > /etc/init.d/mongod startshell > chkconfig --level 35 mongod on

四、客户端连接

shell > mongo --port 27007

# 这里会看到一些警告信息, 照着改一改就好了

shell > echo never > /sys/kernel/mm/transparent_hugepage/defragshell > echo never > /sys/kernel/mm/transparent_hugepage/enabled

# 关闭透明大页, 记得加入 /etc/rc.local

shell > vim /etc/security/limits.conf*                -       nproc           64000*                -       nofile          64000

# 进程数、文件描述符, ulimit -u 64000、ulimit -n 64000 (好像还不行...)

# 官方文档:

五、安全

# 认证类型:

# 配置管理:

(我)选择(的是)基于角色的访问控制

# 相关文档:

1、创建用户、分配角色

# 相关文档:

# 默认角色:

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.confsecurity:  authorization: enabled

# 开启授权, /etc/init.d/mongod restart

3、验证

shell > mongo --port 27007MongoDB shell version v3.6.4connecting to: mongodb://127.0.0.1:27007/MongoDB server version: 3.6.4> show dbs2018-05-11T15:21:35.653+0800 E QUERY    [thread1] Error: listDatabases failed:{    "ok" : 0,    "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0, $db: \"admin\" }",    "code" : 13,    "codeName" : "Unauthorized"} :_getErrorWithCode@src/mongo/shell/utils.js:25:13Mongo.prototype.getDBs@src/mongo/shell/mongo.js:65:1shellHelper.show@src/mongo/shell/utils.js:820:19shellHelper@src/mongo/shell/utils.js:710:15@(shellhelp2):1:1# 提示认证失败> use adminswitched to db admin> db.auth("root", "73osZMb")1> show dbsadmin   0.000GBconfig  0.000GBlocal   0.000GB# 尝试 root 角色权限> use spider> db.sp_douban.insertOne({
"id": 1, "name": "警察故事"}){ "acknowledged" : true, "insertedId" : ObjectId("5af5450510d201ef1d48d3a4")}> db.sp_douban.findOne(){ "_id" : ObjectId("5af5450510d201ef1d48d3a4"), "id" : 1, "name" : "警察故事" }> db.sp_douban.deleteOne({
"id": 1}){ "acknowledged" : true, "deletedCount" : 1 }> db.sp_douban.find()

# 可以开到该用户可以创建数据库、创建表、插入、查询、删除

# 好, 先这样, 搞爬虫去!

转载于:https://www.cnblogs.com/wangxiaoqiangs/p/9024894.html

你可能感兴趣的文章
CF1101E Polycarp's New Job
查看>>
3d角色模型 制作 全过程 。3d max 。3d role model making process.3d Max
查看>>
开学第一周
查看>>
Pandas学习笔记,groupby的一些用法
查看>>
浅谈C#中的延迟加载“.NET研究”(1)——善用委托
查看>>
VS“.NET研究”2010测试功能之旅:编码的UI测试(1)
查看>>
接口库设计总结
查看>>
redis查看数据
查看>>
DFS ( 深度优先/回溯算法 ) 一
查看>>
Enum一点使用总结
查看>>
eclipse +VISUALSVN SERVER 创建版本控制器,防止误操作(可视化操作,简单方便,不需要修改配置文件)...
查看>>
一致性hash
查看>>
C++函数的重载
查看>>
WPF自定义控件与样式(9)-树控件TreeView与菜单Menu-ContextMenu
查看>>
苹果应用的上线步骤
查看>>
初识scoket
查看>>
Stardew Valley(星露谷物语)Mod开发之路 1环境配置
查看>>
2012 借教室
查看>>
为什么是Spring Boot
查看>>
python基础-协程
查看>>