新手小白Linux(Centos6.5)部署java web项目(mongodb4.0.2安装及相关操作)
红帽企业或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、启动
service mongod start
5、登录
mongodb默认登录无认证,直接进
mongo
二、导入导出数据(mongodb更新很快,高版本和低版本的命令有很多改动的地方,还请读者看准自己用的版本到官网上找到最正确的命令)
官网文档:https://docs.mongodb.com/manual/reference/program/mongoimport/#options
1、下载可视化工具,使用工具进行导入导出
http://www.mongoing.com/archives/3651
导入导出命令都是在登录mongo之前进行的操作,从系统命令行运行,而不是在登录mongo后的shell里面。
2、查看导入的参数信息:
mongoimport --help
3、命令简单导入:
mongoimport --db test --collection role --file role.json
4、查看导出的参数信息:
mongoexport --help
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.bsonmongorestore --db test-db --collection userfiles.chunks /路径/userfiles.files.bson
2、导出
mongodump --db test-db --collection userfiles.files --out ./userfilesmongodump --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
4、安全认证内置角色列表:(复制的官网:https://docs.mongodb.com/manual/core/security-built-in-roles/)
数据库用户角色
每个数据库都包含以下角色:
角色 | 简短的介绍 |
---|---|
read
|
提供对所有读取数据的能力非 -系统集合和下列系统集合: 有关角色授予的特定权限,请参阅 |
readWrite
|
提供 有关角色授予的特定权限,请参阅 |
数据库管理角色
每个数据库都包含以下数据库管理角色:
角色 | 简短的介绍 |
---|---|
dbAdmin
|
提供执行管理任务(如与架构相关的任务,索引和收集统计信息)的功能。此角色不授予用户和角色管理权限。 有关角色授予的特定权限,请参阅 |
dbOwner
|
数据库所有者可以对数据库执行任何管理操作。这个角色组合由授予的权限readWrite , dbAdmin 和userAdmin 角色。
|
userAdmin
|
提供在当前数据库上创建和修改角色和用户的功能。由于该 有关角色授予的特定权限,请参阅 |
群集管理角色
该admin
数据库包括以下角色,用于管理整个系统而不仅仅是单个数据库。这些角色包括但不限于副本集和分片集群管理功能。
角色 | 简短的介绍 |
---|---|
clusterAdmin
|
提供最佳的集群管理访问。这个角色组合由授予的权限clusterManager ,clusterMonitor 和hostManager 角色。此外,角色提供了dropDatabase 操作。
|
clusterManager
|
提供群集上的管理和监视操作。具有此角色的用户可以分别访问 分片和复制中使用的 有关角色授予的特定权限,请参阅 |
clusterMonitor
|
提供对监视工具的只读访问权限,例如MongoDB Cloud Manager 和Ops Manager监视代理程序。 有关角色授予的特定权限,请参阅 |
hostManager
|
提供监视和管理服务器的功能。 有关角色授予的特定权限,请参阅 |
备份和恢复角色
该admin
数据库包括以下用于备份和还原数据的角色:
角色 | 简短的介绍 |
---|---|
backup
|
提供备份数据所需的最小权限。此角色提供了足够的权限来使用MongoDB Cloud Manager备份代理, Ops Manager备份代理或用于备份 有关角色授予的特定权限,请参阅 |
restore
|
版本3.6中已更改:提供 提供从不包含 有关角色授予的特定权限,请参阅 |
全数据库角色
版本3.4中已更改。
以下角色可在上admin
数据库,并提供适用于所有数据库,除了特权local
和 config
:
角色 | 简短的介绍 |
---|---|
readAnyDatabase
|
提供与 有关角色授予的特定权限,请参阅 在版本3.4中更改:在3.4之前, |
readWriteAnyDatabase
|
提供与 有关角色授予的特定权限,请参阅 在版本3.4中更改:在3.4之前, |
userAdminAnyDatabase
|
提供与 由于该 有关角色授予的特定权限,请参阅 在版本3.4中更改:在3.4之前, |
dbAdminAnyDatabase
|
提供与 有关角色授予的特定权限,请参阅 在版本3.4中更改:在3.4之前, |
超级用户角色
以下角色为所有资源提供完全权限:
角色 | 简短的介绍 |
---|---|
root
|
提供对业务和所有的资源 有关角色授予的特定权限,请参阅 |
内部角色
角色 | 简短的介绍 |
---|---|
__system
|
提供对数据库中的任何对象执行任何操作的权限。 除特殊情况外,请勿将此角色分配给表示应用程序或人员管理员的用户对象。 有关更多信息,请参阅 |
五、mongodb4.0.2兼容须知
1、官网文档:https://docs.mongodb.com/manual/release-notes/4.0-compatibility/
删除支持MONGODB-CR认证方式,新增SCRAM-SHA-256认证方式……
如果之前开发用的是低版本的mongo的就要注意了,很有可能要重写代码
我最后的解决方法是不开安全认证/捂脸,先上线,后更新的时候再改代码加认证
2、检查一下自己的mongodb-java-driver包是不是3.8.0版本
http://mongodb.github.io/mongo-java-driver/
3、检查一下自己的spring整合mongodb包 spring-data-mongodb是不是与之匹配的版本(具体支持到哪个版本我也不清楚,看一下它的更新说明)
https://docs.spring.io/spring-data/mongodb/docs/2.0.10.RELEASE/reference/html/#new-features.2-0-0
转载于:https://www.cnblogs.com/qq765065332/p/9642814.html
新手小白Linux(Centos6.5)部署java web项目(mongodb4.0.2安装及相关操作)相关推荐
- linux下tomcat部署java web项目_在linux下用tomcat部署java web项目的过程与注意事项
在linux下用tomcat部署java web项目的过程与注意事项 一.安装JDK 到http://www.oracle.com/technetwork/java/javase/downloads/ ...
- 云服务器(uCloud)部署java web项目(二) 安装,配置apache服务器
自己组建了一个网站,想要发布到互联网上.然后我就找到了这个链接 https://www.codecasts.com/series/deploy-a-website-from-scratch(是一个从零 ...
- 在Linux系统上部署java web项目
将Spring boot项目打成jar包后放在服务器进行运行: 部署命令: nohup java -jar mybatis-0.0.1-SNAPSHOT.jar >output 2>&am ...
- linux下tomcat部署java web项目_求助帖 linux服务器 tomcat部署javaweb项目问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 03-Sep-2018 17:42:07.330 SEVERE [localhost-startStop-1] org.apache.catalina.c ...
- 云服务器 ECS 建站教程:手工部署Java Web项目
手工部署Java Web项目 Tomcat 一个开源的且免费的 Java Web 服务器,常用来作为 web 开发的工具.它可以托管由 servlet,JSP 页面(动态内容),HTML 页面,jav ...
- 本篇文档介绍如何手动在ECS实例上部署Java web项目
本篇文档介绍如何手动在ECS实例上部署Java web项目.适用于刚开始使用阿里云进行建站的个人用户. 项目配置 { .section} 本篇教程在示例步骤中使用了以下版本的软件.操作时,请您以实际软 ...
- 阿里云服务器部署Java Web项目全过程
最近需要将一个Java Web项目部署到服务器上,方便多人共享访问.这也是我第一次接触服务器之类的东西,也花了一点时间,最终总算部署成功. 购买服务器 第一步当然是需要购买一台服务器了,我选择的是阿里 ...
- 基于Docker里的运行的tomcat容器进行部署Java Web项目详解
引言:在centos-7环境装了docker后,通过docker创建一个tomcat容器,想部署Java web项目,结果就是找不到tomcat 容器的的webapps目录,导致部署不了项目,不过后来 ...
- 从零开始学习Linux部署Java web项目
前言 最近越来越发现需要学习的东西太多了,前几天公司服务器出现问题,需要对服务器硬件进行维护,当然服务器上的服务需要部署到另一个服务器上.这对于我来说是很陌生的,虽然这件工作没有让我去做,但是还是很好 ...
最新文章
- CNCF接纳Harbor为沙箱项目
- 电池pack结构_PACK仿真电池分析新能源汽车整车碰撞
- C++Runge-Kutta龙格-库塔法求非线性常微分方程的解(附完整源码)
- 平板游戏问题(luogu 2003/2018 特长生 T4)
- 微信公众号开发 重要 access_token {errcode:40164,errmsg:invalid ip 114.221.159.11, not in whitelist hint:
- 机器学习相关速查表Cheat Sheet
- OSSIM5 自定义安装
- WCF服务运行找不到X.509证书解决方案
- libevent c++高并发网络编程_高并发-网络I/O
- http代码_ssssssss 0.0.1 发布,无需代码的 HTTP 接口快速开发框架
- IT 软件项目管理 期末复习要点(太原理工大学)
- 【元胞自动机】基于元胞自动机实现交通流NaSch模型matlab源码
- 楼天成 中国大学生编程第一人
- 海马玩模拟器——搭建React Native环境
- 阿里旺旺自动回复工具开发二
- Sharding Sphere ~ Sharding-jdbc分库分表、读写分离
- Android 中Native方法是怎样调用的
- 会声会影2022最新版更新 8项全新功能介绍
- 素数求解的C语言方法
- 2022值得入手的运动装备有哪些?618超值得买合集