新手小白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.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、创建用户
// 至少需要添加一个用户,且一定要添加一个root用户,否则认证开启失败,因为开启后你都没用户登录,那不是很尴尬
> use admin
switched to db admin
> db.createUser({user:"root",pwd:"root_pwd",roles:[{role:"root",db:"admin"}]});
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
> use userfiles
switched to db userfiles
> db.createUser({user:"user_name",pwd:"user_pwd",roles:[{role:"dbOwner",db:"userfiles"}]});
Successfully added user: {
"user" : "user_name",
"roles" : [
{
"role" : "dbOwner",
"db" : "userfiles"
}
]
}
> exit
2、开启安全认证
编辑文件:/etc/mongod.conf ,把 security: 前面的#号去掉,在下面保留两个缩进加上一行 authorization: enabled ,enabled 和:之间要有一个空格,我也不知道为什么
重启mongo服务
vi /etc/mongod.conf
# mongod.conf # for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/ # where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log # Where and how to store data.
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger: # how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo # network interfaces
net:
port: 27017
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. 33 # 原来长这样:
34 # security:
35 # 改成这样
36 security:
37 authorization: enabled #setParameter:
# authenticationMechanisms: SCRAM-SHA-1 #auth: true #operationProfiling: #replication: #sharding: ## Enterprise-Only Options #auditLog: #snmp:
~
~
~
~
"/etc/mongod.conf" 51L, 935C written service mongod restart
Starting mongod: [ OK ]
3、重新登录,测试安全认证
# mongo
MongoDB shell version v4.0.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.2
// 这个时候你虽然进来了,但你还没认证,你是没有任何权限的
> show dbs
2018-09-14T16:15:21.985+0800 E QUERY [js] Error: listDatabases failed:{
"ok" : 0,
"errmsg" : "command listDatabases requires authentication",
"code" : 13,
"codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:67:1
shellHelper.show@src/mongo/shell/utils.js:876:19
shellHelper@src/mongo/shell/utils.js:766:15
@(shellhelp2):1:1 > use admin
switched to db admin
> db.auth("root","root_pwd")
1
> show dbs
admin 0.000GB
config 0.000GB
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
新手小白Linux(Centos6.5)部署java web项目(mongodb4.0.2安装及相关操作)的更多相关文章
- 新手小白Linux(Centos6.5)部署java web项目(mysql5.7安装及相关操作)
一.安装 参考:https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html # 检测系统中是否安装了mysql y ...
- Linux CentOS下部署Java Web项目
本文讲解如何在Linux CentOS下部署Java Web项目的步骤. 一.环境准备: (1)Linux CentOS (2)apache-tomcat-9.0.10 (3)XShell 二.启动t ...
- 新手小白Linux(Centos6.5)部署java web项目(总)
一.准备 1.linux centos版本的相关命令操作,千万别找ubuntu的,好多命令都不一样,新手小白我傻傻不知道硬是浪费了一天的时间……(百度百科linux版本了解一下) 2.远程登录: P ...
- 在linux下用tomcat部署java web项目的过程与注意事项
在linux下用tomcat部署java web项目的过程与注意事项 一.安装JDK 到http://www.oracle.com/technetwork/java/javase/downloads/ ...
- 在linux下用tomcat部署java web项目的过程与注意事项(转)
在linux下用tomcat部署java web项目的过程与注意事项一.安装JDK到http://www.oracle.com/technetwork/java/javase/downloads/in ...
- 阿里云部署Java web项目初体验(转)/linux 上配置jdk和安装tomcat
摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在阿里云上部署Java web项目. 一.准备工作 购买了阿里云的云解析,和云服务器ecs. 2.下载put ...
- CentOS安装tomcat并且部署Java Web项目具有一定的参考价值
本篇文章主要介绍了CentOS安装tomcat并且部署Java Web项目,具有一定的参考价值,有需要的可以了解一下.(http://m.8682222.com) 1.准备工作 b.因为tomcat的 ...
- 阿里云部署Java web项目初体验(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在 ...
- 部署Java Web项目报错(一)
今天,我在部署Java Web项目时,出现错误,并且在eclipse新建一个servers,却出现多个项目. 具体错误截图如下: 然后,我又将项目部署到JBoss服务器中,却还是运行不成功 22:12 ...
随机推荐
- iBatis的CRUD操作详细总结
昨天晚上看了一下关于iBatis的一个讲解的视频,讲的和我的这个简单的总结差不多.... 思考了一下还是把主要操作都总结一下吧,当然这里也不是全的,知识简单的CRUD... 首先我觉得持久层的操作主要 ...
- 在采用vue-cli Post Get
需要依赖插件 vue-resource npm install vue-resource --save https://cn.vuejs.org/v2/cookbook/using-axios-to- ...
- python pandas demo
1. import pandas as pd web_stats = {,,,,,], ,,,,,], ,,,,,]} df = pd.DataFrame(web_stats) print(df.he ...
- GRASP (职责分配原则)
要学习设计模式,有些基础知识是我们必须要先知道的,设计模式是关于类和对象的一种高效.灵活的使用方式,也就是说,必须先有类和对象,才能有设计模式的用武之地,否则一切都是空谈,那么类和对象是从那冒出来的呢 ...
- [原][osg][osgearth]简单的通过osgDB,读取高程tif,修改高程tif
ReadResult result; osg::ref_ptr<osgDB::ReaderWriter> reader = osgDB::Registry::instance()-> ...
- 《Blue_Flke》团队项目软件系统设计改进
团队项目系统设计改进: 1.分析项目系统设计说明书初稿的不足,特别是软件系统结构模型建模不完善内容 在上一次的项目系统设计说明书中没有很好的完成软件系统结构模型的建模设计,只做了基本的系统项目原型模型 ...
- 『PyTorch』第十三弹_torch.nn.init参数初始化
初始化参数的方法 nn.Module模块对于参数进行了内置的较为合理的初始化方式,当我们使用nn.Parameter时,初始化就很重要,而且我们也可以指定代替内置初始化的方式对nn.Module模块进 ...
- 43. Multiply Strings 字符串表示的大数乘法
Given two numbers represented as strings, return multiplication of the numbers as a string. Note: Th ...
- 浅析postgresql数据库事务及行锁特征
开源数据库领域,postgresql以其优越的性能.功能及良好的稳定性排名首位可谓当之无愧,尤其是对高并发的支持可谓匠心独具.而优越的性能和稳定性,究其根本无非是良好的基础架构,本文将对其性能和稳定性 ...
- 转载:移动端+微信小程序实现,手机端滑动分页代码思路(ajax)
//一般在PC上我们要分页都是通过上一页和下一页来实现的,手机通过当下滑到一定程度的时候自动加载下一页面//实现思路:首先加载部分数据,当下滑到某个元素可见的时候,如果还有数据,则新发送请求,然后追加 ...