作者:mobiledu2502885807 | 来源:互联网 | 2023-09-24 19:17
红帽企业或CentOS的Linux上安装MongoDB的社区版:https:docs.mongodb.commanualtutorialinstall-mongodb-on-red-ha
红帽企业或CentOS的Linux上安装MongoDB的社区版:
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
一、安装
1、配置yum源,在yum源目录下创建一个文件 mongodb-org-4.0.repo
vi /etc/yum.repos.d/mongodb-org-4.0.repo
2、编辑文件:把下面内容复制进去
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=0
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
这个内容在官网上复制的时候别在开着翻译的情况下复制,你会爆炸的
官网gpgcheck=1,表示对从这个yum源下载的rpm包进行校验,配合gpgkey(校验密匙获取地址)使用
不过……貌似这个校验不能用,我试过1的时候报错了……
3、安装
yum install -y mongodb-org
4、启动
5、登录
mongodb默认登录无认证,直接进
二、导入导出数据(mongodb更新很快,高版本和低版本的命令有很多改动的地方,还请读者看准自己用的版本到官网上找到最正确的命令)
官网文档:https://docs.mongodb.com/manual/reference/program/mongoimport/#options
1、下载可视化工具,使用工具进行导入导出
http://www.mongoing.com/archives/3651
导入导出命令都是在登录mongo之前进行的操作,从系统命令行运行,而不是在登录mongo后的shell里面。
2、查看导入的参数信息:
3、命令简单导入:
mongoimport --db test --collection role --file role.json
4、查看导出的参数信息:
5、简单导出
mongoexport --db test --collection role --out role.json
导出的参数和导入是基本相同的,mongodb4.0版本和以前的版本相当于是换了一种认证机制。
个人建议:不要在导入之前给mongodb开启身份认证,默认无用户名密码可登录是最方便的。弄好一切之后再根据实际情况看看要不要开户认证机制。
三、mongo中GridFS对象的导入导出
使用GridFS来存储大型文件是一个很好的选择,但是这个库和上面的库的导入导出不一样。因为文件是以二进制的形式存储的,应该使用二进制文件的形式进行导入导出。上面的库使用的是json或csv的形式。
存储文件的这个库有且只有两个指定的文档:userfiles.files,userfiles.chunks
1、导入
mongorestore --db test-db --collection userfiles.files /路径/userfiles.files.bson
mongorestore --db test-db --collection userfiles.chunks /路径/userfiles.files.bson
2、导出
mongodump --db test-db --collection userfiles.files --out ./userfiles
mongodump --db test-db --collection userfiles.chunks --out ./userfiles
这种导入导出的方法适用于所有的库,不局限于GridFS
四、安全认证
认证机制最后再开,可以避免许多问题
1、创建用户
1 // 至少需要添加一个用户,且一定要添加一个root用户,否则认证开启失败,因为开启后你都没用户登录,那不是很尴尬
2 > use admin
3 switched to db admin
4 > db.createUser({user:"root",pwd:"root_pwd",roles:[{role:"root",db:"admin"}]});
5 Successfully added user: {
6 "user" : "root",
7 "roles" : [
8 {
9 "role" : "root",
10 "db" : "admin"
11 }
12 ]
13 }
14 > use userfiles
15 switched to db userfiles
16 > db.createUser({user:"user_name",pwd:"user_pwd",roles:[{role:"dbOwner",db:"userfiles"}]});
17 Successfully added user: {
18 "user" : "user_name",
19 "roles" : [
20 {
21 "role" : "dbOwner",
22 "db" : "userfiles"
23 }
24 ]
25 }
26 > exit
2、开启安全认证
编辑文件:/etc/mongod.conf ,把 security: 前面的#号去掉,在下面保留两个缩进加上一行 authorization: enabled ,enabled 和:之间要有一个空格,我也不知道为什么
重启mongo服务
1 vi /etc/mongod.conf
2 # mongod.conf
3
4 # for documentation of all options, see:
5 # http://docs.mongodb.org/manual/reference/configuration-options/
6
7 # where to write logging data.
8 systemLog:
9 destination: file
10 logAppend: true
11 path: /var/log/mongodb/mongod.log
12
13 # Where and how to store data.
14 storage:
15 dbPath: /var/lib/mongo
16 journal:
17 enabled: true
18 # engine:
19 # mmapv1:
20 # wiredTiger:
21
22 # how the process runs
23 processManagement:
24 fork: true # fork and run in background
25 pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
26 timeZoneInfo: /usr/share/zoneinfo
27
28 # network interfaces
29 net:
30 port: 27017
31 bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
32
33 # 原来长这样:
34 # security:
35 # 改成这样
36 security:
37 authorization: enabled
38
39 #setParameter:
40 # authenticationMechanisms: SCRAM-SHA-1
41
42 #auth: true
43
44 #operationProfiling:
45
46 #replication:
47
48 #sharding:
49
50 ## Enterprise-Only Options
51
52 #auditLog:
53
54 #snmp:
55 ~
56 ~
57 ~
58 ~
59 "/etc/mongod.conf" 51L, 935C written
60
61 service mongod restart
62 Starting mongod: [ OK ]
3、重新登录,测试安全认证
1 # mongo 2 MongoDB shell version v4.0.2
3 connecting to: mongodb://127.0.0.1:27017
4 MongoDB server version: 4.0.2
5 // 这个时候你虽然进来了,但你还没认证,你是没有任何权限的
6 > show dbs
7 2018-09-14T16:15:21.985+0800 E QUERY [js] Error: listDatabases failed:{
8 "ok" : 0,
9 "errmsg" : "command listDatabases requires authentication",
10 "code" : 13,
11 "codeName" : "Unauthorized"
12 } :
13 _getErrorWithCode@src/mongo/shell/utils.js:25:13
14 Mongo.prototype.getDBs@src/mongo/shell/mongo.js:67:1
15 shellHelper.show@src/mongo/shell/utils.js:876:19
16 shellHelper@src/mongo/shell/utils.js:766:15
17 @(shellhelp2):1:1
18
19 > use admin
20 switched to db admin
21 > db.auth("root","root_pwd")
22 1
23 > show dbs
24 admin 0.000GB
25 config 0.000GB
26 local 0.000GB
推荐阅读
-
Spring – Bean Life Cycle ...
[详细]
蜡笔小新 2024-11-13 13:24:40
-
MicrosoftDeploymentToolkit2010部署培训实验手册V1.0目录实验环境说明3实验环境虚拟机使用信息3注意:4实验手册正文说 ...
[详细]
蜡笔小新 2024-11-12 20:02:27
-
-
大家好,我是李白。本文将分享一个从零开始的全栈项目,涵盖了设计、前端、后端和服务端的全面学习过程。通过这个项目,我希望能够帮助初学者更好地理解和掌握全栈开发的技术栈。 ...
[详细]
蜡笔小新 2024-11-12 17:27:19
-
本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ...
[详细]
蜡笔小新 2024-11-12 11:55:04
-
本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ...
[详细]
蜡笔小新 2024-11-12 10:51:15
-
本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ...
[详细]
蜡笔小新 2024-11-11 19:54:24
-
大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ...
[详细]
蜡笔小新 2024-11-11 19:05:59
-
在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ...
[详细]
蜡笔小新 2024-11-11 19:02:49
-
服务器部署中的安全策略实践与优化 ...
[详细]
蜡笔小新 2024-11-10 13:04:30
-
在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ...
[详细]
蜡笔小新 2024-11-09 03:04:54
-
MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案 ...
[详细]
蜡笔小新 2024-11-07 10:42:53
-
面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ...
[详细]
蜡笔小新 2024-11-04 17:23:10
-
本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ...
[详细]
蜡笔小新 2024-11-12 18:13:16
-
蜡笔小新 2024-11-12 15:26:03
-
window下的python安装插件,Go语言社区,Golang程序员人脉社 ...
[详细]
蜡笔小新 2024-11-12 15:14:05
-
mobiledu2502885807
这个家伙很懒,什么也没留下!