mongodb3.0分片及java代码连接操作测试(开启用户验证)
2023-09-14 09:04:42 时间
最近抽时间搭建了一下mongodb简单的分片,整个过程还算是蛮顺利,只不过在用户验证这一块遇到了一些问题,好在最后终于搞定。
一、服务器搭建过程:
1、安装四个mongodb:一个作为config、一个作为mongos、另外两个作为主要数据存储的服务器(机器ip192.168.0.201),如图:
分别对应图中被红框框起来的mongoconf、mongos、mongo1、mongo2(解压安装,安装过程省略)。 2、分别建立data、conf、logs文件夹,并在logs文件夹下建立mongodb.log文件,在conf中建立mongodb.conf(启动配置参数)文件。 mongoconf中conf文件内容如下:
3、依次启动mongoconf、mongos和mongo1、mongo2: 启动mongoconf,在bin目录下执行mongod命令:
6、测试:向test数据库的user表中添加10w条数据:
2、退出mongo shell,创建keyFile(文件名可自取)文件,并赋予600权限,必须要600权限: 进入到mongo1的data目录下执行如下命令:
3、把生成的keyFile文件拷贝到其他几个mongodb的data目录中:
4、修改mongodb.conf启动配置文件: 除开mongos之外,其他都加上如下内容(开启用户验证和keyFile验证):
收工完成!
某数据日报思路和Java汇总每日每周每月用户数据定时任务+锁 一、某数据日报思路 增加type字段 1.日报核对每一个字段,缺少的就增加 2.改造每个查询sql为查时间段,后面可以重复利用 3。先做月报,新建定时任务,自己百度cron表达式,每月1号凌晨一点执行月报定时任务 4.做周报,新建定时任务,每周一凌晨1点执行 二、Java汇总每日每周每月用户数据定时任务+锁
Java开发:实现用户注册登录的功能 在Java开发过程中,实现用户的注册功能是最基本的,用户通过手机号或者邮箱作为注册账号也是非常常见的操作方式,不管是通过手机号注册或者邮箱注册,原理都差不多,那么本文就来分享一下在Java开发过程中的用户注册账号的功能实现。
第5篇:Java如何接收用户键盘输入? 思考下面的功能: 用户输入两个数字,计算机计算后在控制台打印两个数字的和。 在上面的需求中,主要难点是:如何获取用户输入的数字?
涂宗勋 认真生活,快乐工作,保持理想!https://blog.csdn.net/tuzongxun
分别对应图中被红框框起来的mongoconf、mongos、mongo1、mongo2(解压安装,安装过程省略)。 2、分别建立data、conf、logs文件夹,并在logs文件夹下建立mongodb.log文件,在conf中建立mongodb.conf(启动配置参数)文件。 mongoconf中conf文件内容如下:
dbpath=/home/admin/mongoconf/data logpath=/home/admin/mongoconf/logs/mongodb.log logappend=true fork=true port=30000mongos中conf文件内容个如下(与上边相比少了dbpath的指定):
3、依次启动mongoconf、mongos和mongo1、mongo2: 启动mongoconf,在bin目录下执行mongod命令:
./mongod -f ../conf/mongodb.conf启动mongos,在bin目录下执行mongos命令:
./mongos -f ../conf/mongodb.conf --configdb=192.168.0.201:30000启动mongo1和mongo2,在各自的bin目录中执行mongod命令:
./mongod -f ../conf/mongodb.conf4、连接mongos服务器,并添加分片: (1)、连接mongos:在任意一个mongodb的bin目录执行如下命令:
db.runCommand({"addshard":"192.168.0.201:37117"}) db.runCommand({"addshard":"192.168.0.201:47117"})
db.runCommand({"enablesharding":"test"}) db.runCommand({"shardcollection":"test.user","key":{"name":1}})
6、测试:向test数据库的user表中添加10w条数据:
use test for(var i=0;i 100000;i++){ db.user.insert({"name":"test"+i,"age":i}); }
db.createUser({"user":"test","pwd":"123456","roles":[{"db":"test","role":"readWrite"},"readWrite"]})
2、退出mongo shell,创建keyFile(文件名可自取)文件,并赋予600权限,必须要600权限: 进入到mongo1的data目录下执行如下命令:
openssl rand -base64 753 keyFile chmod 600 keyFile
3、把生成的keyFile文件拷贝到其他几个mongodb的data目录中:
4、修改mongodb.conf启动配置文件: 除开mongos之外,其他都加上如下内容(开启用户验证和keyFile验证):
auth=true keyFile=/home/admin/mongo2/data/keyFilemongos中没有auth参数,只需要keyFile。 5、重新依次启动mongoconf、mongos和mongo1、mongo2(参考上边的启动说明); 三、java代码连接测试: 1、java连接代码如下:
public class MonTest { public static void main(String[] args) { mongodbfind2(); public static void mongodbfind2() { ServerAddress sa = new ServerAddress("192.168.0.201", 40000); List MongoCredential mongoCredentialList = new ArrayList MongoCredential mongoCredentialList.add(MongoCredential.createCredential("test", "test", "123456".toCharArray())); MongoClient client = new MongoClient(sa, mongoCredentialList); MongoDatabase database = client.getDatabase("test"); // ******** MongoCollection collection2 = database.getCollection("user"); FindIterable Document findIterable = collection2.find(); MongoCursor Document cursor2 = findIterable.iterator(); while (cursor2.hasNext()) { Document doc = cursor2.next(); System.out.println(doc.get("_id") + "," + doc.get("name") + "," + doc.get("age")); // 关闭数据库连接 client.close(); }2、运行结果:
收工完成!
某数据日报思路和Java汇总每日每周每月用户数据定时任务+锁 一、某数据日报思路 增加type字段 1.日报核对每一个字段,缺少的就增加 2.改造每个查询sql为查时间段,后面可以重复利用 3。先做月报,新建定时任务,自己百度cron表达式,每月1号凌晨一点执行月报定时任务 4.做周报,新建定时任务,每周一凌晨1点执行 二、Java汇总每日每周每月用户数据定时任务+锁
Java开发:实现用户注册登录的功能 在Java开发过程中,实现用户的注册功能是最基本的,用户通过手机号或者邮箱作为注册账号也是非常常见的操作方式,不管是通过手机号注册或者邮箱注册,原理都差不多,那么本文就来分享一下在Java开发过程中的用户注册账号的功能实现。
第5篇:Java如何接收用户键盘输入? 思考下面的功能: 用户输入两个数字,计算机计算后在控制台打印两个数字的和。 在上面的需求中,主要难点是:如何获取用户输入的数字?
涂宗勋 认真生活,快乐工作,保持理想!https://blog.csdn.net/tuzongxun
相关文章
- java 常见连接池性能测试
- mybatis简单案例源码详细【注释全面】——测试层(UserMapperTest.java)
- Java实现 LeetCode 324 摆动排序 II
- Java实现 LeetCode 128 最长连续序列
- Java实现第九届蓝桥杯测试次数
- Java实现 蓝桥杯 历届试题 最大子阵
- Java实现Catenyms(并查集+dfs+欧拉回路)
- Java实现字符串的全排列
- Java实现 蓝桥杯VIP 基础练习 芯片测试
- Java实现 蓝桥杯VIP 基础练习 芯片测试
- (Java实现) 洛谷 P1028 数的计算
- (Java实现) 洛谷 P1025 数的划分
- JAVA之StringBuffer测试样码
- java 连接postgresql测试
- JAVA“找不到或无法加载主类” 问题的解决办法
- ABAP和Java的tag(marker) interface
- 如何进行Java的Remote调试
- Java反射机制在UI自动化测试中的一个应用
- paip.批处理清理java项目冗余jar的方法
- 华为OD机试 - 微服务的集成测试(Java & JS & Python)
- Java Stream流之求和
- 基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - 内部框架及UI自动化测试框架思维导图
- 基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - grid [跨浏览器远程测试-可分布式]
- 基于JAVA实现的WEB端UI自动化 -自动化测试简单介绍
- 【 华为OD机试 2023】 微服务的集成测试(C++ Java JavaScript Python)
- java 中的 |=、&=、^=
- 寒窗苦学3年,说好的没学好Java转行测试,最后我8K,他15K?
- Java测试开发进阶路线
- Android的Kotlin导入java项目后的AppCompatActivity父类红标了
- 基于JAVA实现的WEB端UI自动化 -自动化测试简单介绍
- Java中HashMap原理