最近公司对项目安全方面的问题很是重视,进行了多次各种安全漏洞的扫描,于是乎就扫到了mongodb弱口令的问题. 在项目部署初期,因为大家对这个都不是特别重视,大概是因为觉得反正是内网项目吧,所以mongodb数据库的用户名和密码就都是admin. 这次扫到弱口令之后,要求解决这个问题,于是任务便分到了我的头上. 遵循强口令的标准,我把admin改成了由大写字母.小写字母.数字和特殊字符共同组成的密码,但是在更改的过程中却并不像想象的那么顺利,其中遇到的问题我称之为mongodb副本集密码的一些坑…
之前有搭建mongodb3.0的副本集,不过当时直接使用的admin数据库,用户也是直接给的root. 链接:http://blog.csdn.net/tuzongxun/article/details/51723259 最近想要把数据移到非admin数据库上,便重新以非admin库创建用户,过程大致和之前的一样,但创建用户的时候还是遇到了一些问题,主要是在用户角色和权限上. 我搭建过程中参考了下边的用户权限相关的博客: http://blog.csdn.net/tuzongxun/articl…
网上的资料太乱了,等弄好了再看官网才发现官网写的最清晰和简洁 推荐官网的副本集配置:https://docs.mongodb.com/manual/tutorial/deploy-replica-set/ 引述大神一段总结:http://blog.csdn.net/huwei2003/article/details/40453223   从概念上说一下MongoDB副本集和主从复制的区别.其实副本集(Replica Set)是主从复制的高级形式.高级在哪里呢?主动复制实现了数据备份+读扩展,但是…
 mongodb副本集用户权限设置  用户权限参考文章 一:先看看MongoDB中用户的角色说明 read :   数据库的只读权限,包括: aggregate,checkShardingIndex,cloneCollectionAsCapped,collStats,count,dataSize,dbHash,dbStats,distinct,filemd5,mapReduce (inline output only.),text (beta feature.)geoNear,geoSearch…
gitlab修改(重置)root用户密码 1.使用root权限登录到服务器. 2.使用以下命令启动控制台:  gitlab-rails console production 该命令有时候启动比较慢,需要等一会 3.有多种方法可以查找您的用户.您可以搜索电子邮件或用户名. user = User.where(id: 1).first 或者 user = User.find_by(email: 'admin@local.host') 4.更改密码: user.password = 'secret_p…
近期有同学问mongodb副本集难不难部署,我的回答是不难,很快,几分钟搞定,比mysql MHA简单的不止一点半点. 那么到底如何部署呢?请看下文. 1.  准备工作 1.1 下载软件 选择版本并下载mongodb的软件,注意操作系统版本等.本次我选用的是percona分支的mongodb 4.2.8版本搭建,操作系统为centos6 cd /usr/local/wget https://www.percona.com/downloads/percona-server-mongodb-LATE…
MongoDB数据库默认情况下是没有做权限控制的,只要能够连接所开放的端口就能进行访问,而且拥有root级别的权限:对于生产环境而言是极不安全的,所以需要建立用户,进行授权控制. 单机环境下的用户授权模块配置: MongoDB的社区版本中有两个模块可以控制用户的访问: --auth: 在mongod启动项中加入--auth,mongodb启动后,就可以完成授权模块的启用): PS:虽然auth模块启用后本机还能否登陆到数据库,但是不具备增删改查的权限了,所以启动auth模块之前就应该创建一个超级…
前言 个人理解,副本集一个主要作用就是当Master库出现故障,其中的一个salve从库会被选举出来成为新的Master.框架图如下: 其中,选举者是不参与数据存储的,它的作用只是为了选举出新的Master.当原Master恢复后,他也只会以从库salve身份加入到副本集中. 当然,我们也可以在恢复启动它的时候手动配置priority参数,让他成为Master. Demo 下面通过具体的例子说明. 首先在mongo目录下建立3个(一个作为master,一个作为从库,一个作为选举者,在实际项目中,…
目前最新的mongodb4.0.2已经支持事务这个重要特性,需要使用的话必须是复制或副本集,这是第一篇先研发如何构建副本集,因为副本集是目前最低成本的高可用群集方式. 1.准备三台服务器,本次使用是的ubuntu16.04.分别在三台服务器执行如下安装指定,参考官方安装连接:https://docs.mongodb.com/master/tutorial/install-mongodb-on-ubuntu/?_ga=2.66639470.1117419885.1536141422-1139377…
1. 安装mysql但是从来没启动过,今天一启动就报错: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 其实是mysql服务没起来... localhost:~ miaoying$ mysql.server start Starting MySQL ... SUCCESS! 然后再去sudo mysql就行了. 2. 修改8.0以上版本的root密码 停止mysql服务: mysql.server…
实现批量修改目标主机多个用户密码: --- - hosts: testchanange passwd gather_facts: false tasks: - name: change you passwd user: name={{ item.name }} password={{ item.chpass | password_hash('sha512') }} update_password=always with_items: - { name: 'admin', chpass: 'h3&…
工作原理 1.副本集之间的复制是通过oplog日志现实的.备份节点通过查询这个集合就可以知道需要进行复制的操作 2.oplog是节点中local库中的一个固定的集合,在默认情况下oplog初始化大小为空闲磁盘的5%.oplog是capped collection,所以当oplog的空间被占满时,会覆盖最初写入的日志 3.通过改变oplog文档的大小直接改变local所占磁盘空间的大小.可以在配置文件中设置oplogSize参数来指定oplog文档的大小. 4.通过oplog中的操作记录,把数据复…
1. 环境准备 在Mongo的官网下载Linux版本安装包,然后解压到对应的目录下:由于资源有限,我们采用Replica Sets + Sharding方式来配置高可用.结构图如下所示: 这里我说明下这个图所表达的意思: Shard服务器:使用Replica Sets确保每个数据节点都具有备份.自动容错转移.自动恢复的能力. 配置服务器:使用3个配置服务器确保元数据完整性. 路由进程:使用3个路由进程实现平衡,提高客户端接入性能 副本集1:Shard11,Shard12,Shard13组成一个副…
说明: 在扫盲MongoDB相关的一些知识的时候,顺手做下笔记.本文将说明副本集相关的内容.在比较早之前已经对这些有过说明,可以看MongoDB 副本集的原理.搭建.应用.MongoDB中的副本集是一组维护相同数据集的mongod进程,副本集提供冗余和高可用性,可提供一定程度的容错能力,以防止丢失单个数据库服务器,是生产部署的基础. 在某些情况下,复制可以提供更大的读取容量,因为客户端可以将读取操作发送到不同的服务器. 在不同数据中心中维护数据副本可以提高数据本地性和分布式应用程序的可用性,还可…
副本集特征: N 个节点的集群 任何节点可作为主节点 所有写入操作都在主节点上 自动故障转移 自动恢复 相关文章: http://www.cnblogs.com/huangxincheng/archive/2012/02/18/2356595.html 菜鸟教程MongoDB配置: http://www.runoob.com/mongodb/mongodb-tutorial.html 推荐官网的副本集配置:   https://docs.MongoDB.com/manual/tutorial/d…
最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很大.特此记录,以备查看. 文章目录: MongoDB和Java(1):Linux下的MongoDB安装 MongoDB和Java(2):普通用户启动mongod进程 MongoDB和Java(3):Java操作MongoB MongoDB和Java(4):Spring Data整合MongoDB(X…
mongodb是最常用的nodql数据库,在数据库排名中已经上升到了前六.这篇文章介绍如何搭建高可用的mongodb(分片+副本)集群. 在搭建集群之前,需要首先了解几个概念:路由,分片.副本集.配置服务器等. 相关概念 先来看一张图: 从图中可以看到有四个组件:mongos.config server.shard.replica set. mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器,mongos自己就是一个请求分发中心,它负责把…
按照集团运维信息安全制度, 需要每个一段时间对线上服务器密码进行一次变更,通过shell脚本部署比较繁琐,所以决定采用ansible脚本对远程主机root密码进行批量重置,该脚本已经在稳定运行在正式环境下.具体方法如下: 1)  在服务端安装ansible [root@ansible-server ~]# yum install -y ansible 2) 配置ansible到远程主机的ssh无密码信任关系 (authoried_keys 模块) 批量实现多台服务器之间ssh无密码登录的相互信任…
下载tar包并安装curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.8.tgz [root@mysqlt1 soft]# tar -zxvf mongodb-linux-x86_64-rhel62-3.6.3.tgz -C /usr/local/[root@mysqlt1 soft]# cd /usr/local/[root@mysqlt1 local]# ln -s /usr/local/mongo…
mongoDB系列之(二):mongoDB 副本集 Mongodb2.6副本集验证部署和认证 副本集有以下特点: 1. 最小构成是:primary,secondary,arbiter,一般部署是:primary,2 secondary. 2. 成员数应该为奇数,如果为偶数的情况下添加arbiter,arbiter不保存数据,只投票. 3. 最大50 members,但是只能有 7 voting members,其他是non-voting members. 注意:配置mongo副本集的时候,不能先…
一.使用问题记录 1. mongodb3.0.6使用mongostat参数 >./mongostat -h 127.0.0.1:27017 -u root -p 123456 /authenticationDatabase admin -n 20 2. 程序或连接工具无法连接? 解决方案:新版的mongodb使用的 2.1 不验证身份安装 >use admin; >db.createUser({user: "root",pwd: "123456",…
案例说明: 在KingbaseES R3集群的最新版本中增加了kingbase_monitor.sh一键修改集群用户密码的功能,本案例是对此功能的测试. kingbaseES R3集群一键修改密码说明: 1. 命令行命令 kingbase_monitor.sh change_password user old_password new_password kingbase_monitor.sh change_password user old_password new_password -修改集群…
案例说明: kingbaseES R6集群用户密码修改,需要修改两处: 1)修改数据库用户密码(alter user): 2)修改.encpwd文件中用户密码: 可以通过sys_monitor.sh change_password一键同时修改数据库内部用户密码和.encpwd文件中密码. 案例测试版本: test=# select version(); version ----------------------------------------------------------------…
方案说明: 对于kingbaseES R3集群修改system密码相比单机环境有一定的复杂性,需要修改的位置如下: 1)数据库中system用户密码,可以用alter user命令修改 2)在recovery.conf和recovery.done文件中,备库连接主库时,需要使用system用户认证(base64加密) 3)集群认证文件cluster_passwd中需要使用system用户认证,密码采用sys_md5工具加密. 案例数据库版本: TEST=# select version(); v…
这是去年写的一篇文档,最近突然发现并没有发不出来,因此现在补上,希望能对某些朋友有所帮助.因为当时记录时没有截图,因此这里看起来可能就比较单调. 一.基本环境: mongdb3.0.5数据库 spring-data-mongodb-1.7.2.jar mongo-java-driver-3.0.2.jar linux-redhat6.3 tomcat7 二.搭建mongodb副本集: 1.  分别在三台linux系统机上安装mongodb,(为避免和机器上原有的mongodb端口冲突,这里设为5…
Centos7.0进入单用户模式修改root密码   启动Centos7 ,按空格让其停留在如下界面. 按e进行编辑 在UTF-8后面输入init=/bin/sh 根据提示按ctrl+x 得如下图 输入mount -o remount,rw /  然后输入passwd设置新密码,如下图 输入 touch  /.autorelabel  更新系统信息 重启系统即可.…
连接数据库等基础操作请自行解决哈,本篇是重点记录如何改密码. 一.查询用户密码: 查询用户密码命令: select host, user, authentication_string from mysql.user ; host: 允许用户登录的ip'位置'%表示可以远程: user:当前数据库的用户名: authentication_string: 用户密码(后面有提到此字段): 二. 设置(或修改)用户密码: 默认root密码为空的话 ,下面使用navicat就无法连接(之前我装的5.7好像…
本文同步于个人Github博客:https://github.com/johnnian/Blog/issues/8,欢迎留言. 安装软件包:mongodb-linux-x86_64-3.4.1.tgz 安装流程思路 目前最小节点是3个,本文档暂且按照3个节点来配置:A.B.C 1.在集群每个节点上安装一份MongoDB: 2.配置副本集: 3.配置副本集的用户.密码: 4.配置副本集的KeyFile安全鉴权: 5.配置开机自启动: 每个节点IP: A节点: 172.17.0.3 B节点: 172…
yum实例 vim /etc/yum.repos.d/mongodb-org-3.2.repo [mongodb-org-3.2] name=Mongodb baseurl=http://repo.mongodb.org/yum/redhat/6Server/mongodb-org/3.2/x86_64/ gpgcheck=0 enabled=1 然后yum -y install mongodb-org 便捷启动脚本(更正一下,3.0 以上有自己官方的脚本,而且是有优化过的.即 不推荐使用这个.…
数据的目录文件层次设计 我们一般采用多实例的方式,而不是将所有的数据库尽可能地放在一个实例中. 主要基于以下考虑: 1:不同业务线对应的数据库放在不同的实例上,部分操作的运维时间容易协调等到. 2:相互独立,减少相互干扰.不会因为某个业务的激增或某个开发Team的代码问题,拖累太多的数据库. 3:实例资源容易控制,例如内存等. 从上图可以知道,mongo二进制文件是多个实例公用的.一个版本一个目录,从图可以看出,这个服务器上支持两个版本的MongoDB,一个是版本3.4.4,一个是比较新的4.0…