mycat

Mysql mycat读写分离

岁酱吖の 提交于 2020-01-22 23:11:27
Mysql mycat读写分离: 下载网址: http://dl.mycat.io Mycat官方网址: http://mycat.org.cn 说明: 10.0.1.2为mycat服务器,10.0.1.3、10.0.1.4为mysql服务器 yum install java-1.8.0-openjdk tar zxfv Mycat-server-1.6.7.5-test-20200109231555-linux.tar.gz -C /space/ 配置读写分离: vi /space/mycat/conf/schema.xml <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat=" http://io.mycat/"&gt ; <schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" randomDataNode="dn1"> <table name="travelrecord,address" dataNode="dn1" rule="auto-sharding-long" splitTableNames ="true"/> </schema> <dataNode name="dn1"

MyCat实战--读写分离/数据分片/mycat集群/haproxy负载均衡

£可爱£侵袭症+ 提交于 2020-01-19 11:58:40
目录 简介 优势 关键特性 读写分离 安装mycat 配置mycat server.xml schema.xml rule.xml 启动mycat 停止mycat 连接mycat 测试 数据分片 配置master 配置slave 创建数据库以及表 配置mycat schema.xml rule.xml 测试 MyCat集群 架构 搭建多节点mycat 连接测试 负载均衡 简介 架构 部署安装HAProxy docker安装 配置文件 启动docker haproxy容器 访问ip:4001/dbs ​ Navicat连接haproxy 简介 优势 关键特性 读写分离 安装mycat 配置mycat server.xml schema.xml rule.xml 启动mycat 启动mycat的命令是 ./startup_nowrap.sh 停止mycat 连接mycat 测试 数据分片 比如两台服务器节点,来了4条数据,两个节点的写库各插入2条,这就是分片。 配置master 配置slave 创建数据库以及表 配置mycat schema.xml rule.xml 测试 MyCat集群 mycat做了数据库的代理,在高并发的情况下,必然也会面临单节点的性能问题,所以需要部署多个mycat节点。 架构 搭建多节点mycat 连接测试 虽然搭建了多节点的mycat集群

MyCat 明文密码安全性问题

試著忘記壹切 提交于 2020-01-19 04:31:00
在 schema.xml 配置文件中,我们在配置 物理库 信息时,会对 url、user、password 等进行配置,但是这里用到的 password 会使用到明文密码。在线上环境中,如果我们使用这种明文密码,显然是不安全的。 针对这种问题,MyCat 为我们提供了解决方案。我们进入 mycat/lib 目录下,此时我们会看到一个 Mycat-server-xxxxxx 开头的jar 包。 通过使用如下命令,便能够完成对密码的加密操作。 命令:java -cp Mycat-server-1.6.7.3-release.jar io.mycat.util.DecryptUtil 1:hostM1:root:123456 这里的 1 指什么呢?hostM1又是指什么呢?接下来详细简解 其中 0:user:password是加密字符串,有两种格式: 1.dataHost加密格式: 1:hostM1:root:123456 注释: 1代表是dataHost加密 hostM1是<writeHost host="hostM1" root是user="root" 123456是 password=明文密码(123456) 对应 writeHost 配置: <writeHost host="hostM1" url="localhost:3306" user="root" password=

Mycat数据库分片(二)之Mycat读写分离(主写从读、主从复制)

巧了我就是萌 提交于 2020-01-17 22:53:37
接着上篇文章 Mycat数据库分片(一) 我们进行了mycat数据库分片的测试,这节我们进行mycat数据库的配置, 配置一个主数据进行写操作,从数据库同步主数据库的内容,并共外界进行读操作的架构模型。 1. Mycat读写分离 数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。对于MySQL来说,标准的读写分离是主从模式,一个写节点Master后面跟着多个读节点,读节点的数量取决于系统的压力,通常是1-3个读节点的配置 Mycat读写分离和自动切换机制,需要mysql的主从复制机制配合。 1.1. Mysql的主从复制 主从配置需要注意的地方 1、主DB server和从DB server数据库的版本一致 2、主DB server和从DB server数据库数据一致[ 这里就会可以把主的备份在从上还原,也可以直接将主的数据目录拷贝到从的相应数据目录] 3、主DB server开启二进制日志,主DB server和从DB server的server_id都必须唯一 1.2. Mysql主服务器配置 找配置文件方法输入whereis my.cnf 如果找不到可以看我的另一篇 linux下的mysql没有my.cnf文件的解决方案 可以看到原来配置文件内容为: # Remove leading # and set to the amount of

三十八. 分库分表概述 配置mycat

烈酒焚心 提交于 2020-01-15 05:17:30
1.搭建mycat 分片服务器 数据库主机 192.168.4.55 使用db1库存储数据 数据库主机 192.168.4.56 使用db2库存储数据 主机 192.168.4.54 运行mycat服务,逻辑库名称为test,连接用户名为admin,密码123456 在主机 192.168.4.254 访问测试配置 1.1 在54(主机c1)和55(主机c2)上面分别创建db1和db2库 mysql> create database db1; //c1上面创建db1库 mysql> create database db2; //c2上面创建db2库 1.2 54 55 都授权 mysql> grant all on *.* to admin@"%" identified by "123456"; 1.3 修改数据库的配置文件(54 55) 注意:1代表不区分表名的大小写,0为区分大小写 ]# vim /etc/my.cnf [mysqld] lower_case_table_names=1 //表名忽略大小写 ]# systemctl restart mysqld 1.4 在56主机上面安装JDK ]# rpm -qa | grep -i jdk //安装自带的即可 ]# yum -y install java-1.8.0-openjdk 1.5 在56主机上面安装mycat ]#

Mycat 整合 MySQL 8.x 踩坑实践

微笑、不失礼 提交于 2020-01-13 00:22:02
Mycat 目前还未全面支持MySQL 8以上的版本,可能会导致一些问题,例如Mycat连接MySQL 8时可能会报密码错误,因为新版的密码加密方式与旧版不一样。还有就是时区问题,新版的连接方式需要增加时区参数。除此之外,可能还会有一些其他问题。因此,我们需要更改Mycat的一些配置,让其能正常连接MySQL 8.x。 下载8.x版本的驱动 首先需要下载 8.x 版本的驱动,Mycat 默认的MySQL驱动版本为 5.x 。到 maven中央仓库 上复制8.x驱动jar包的下载地址,然后到Linux上使用 wget 命令进行下载: [root@txy-server ~]# cd /usr/local/src [root@txy-server /usr/local/src]# wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.18/mysql-connector-java-8.0.18.jar 将驱动包移动到mycat的 lib 目录下,并删除原本的 5.x 驱动包: [root@txy-server /usr/local/src]# mv mysql-connector-java-8.0.18.jar /usr/local/mycat/lib/ [root@txy-server /usr/local

Mycat 核心配置详解

泪湿孤枕 提交于 2020-01-10 14:57:59
先上官方文档: Mycat-doc Mycat 权威指南 常用配置文件间的关系 由上图可以看到 Mycat 的核心配置文件均采用xml格式,这几个配置文件的用途如下: server.xml :用于配置系统参数、用户信息、访问权限及SQL防火墙和SQL拦截功能等 schema.xml :用于配置逻辑库、逻辑表相关信息 rule.xml :如果使用了水平切分,就需要使用该文件配置切分规则 log4j2.xml :Mycat日志相关的配置,例如日志输出格式、日志级别等 应用连接Mycat服务时,Mycat首先会通过 server.xml 中的配置信息进行用户认证。用户通过验证后,所看到的逻辑库、逻辑表都是 schema.xml 中所配置的。当使用了水平切分时,Mycat会通过 rule.xml 里配置的规则来定位具体的物理数据库位置,从而完成写入/读取数据。 server.xml 配置详解 1、 system 标签 用于配置 Mycat 的系统参数,其格式如下: <system> <!-- ${key}表示配置属性的名称,${value}表示该配置属性的值 --> <property name="${key}">${value}</property> </system> 配置 Mycat 服务端口示例: <system> <property name="serverPort">3306<

DDM的成熟在一个细微之处的体现

旧城冷巷雨未停 提交于 2020-01-10 11:58:05
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前言 我们都知道 DDM是华为云的非常优秀的分布式数据库中间件 ,在性能、易用性等方面在业界是遥遥领先的。他的成熟不仅仅体现在具有快速水平平滑扩容,支持多种分布式事物类型等等这些高大上的特性上,也体现在DDM诸多的细微之处,今天我和大家分享一个在发展多年的mycat上存在,但是在DDM中不存在的一个不起眼的细微问题(小问题,大灾难,在IT行业的历史上不断重演,我们要警钟长鸣)。这个问题是我在DDM上玩了好多sql之后,发现DDM是一个玩不死的小强,出于好奇也把一些在DDM上玩的sql放到了mycat上,不幸的是,第一条sql放到了mycat上执行之后,就出现了神奇一幕,下面看看我的排查过程吧。 排查过程 首先,我的测试代码如下,我的sql除了加了一段注释之外,好像再普通不过了。但是一执行发现好像是卡主了。 于是赶紧使用jstack查看测试应用的线程栈信息,如下: 由上图不难发现是卡在测试代码TestJDBC的25行上,也就是卡在了“ps.executeQuery()”这行代码上。当然也发现最终是卡在和mycat的通信上。那么为啥mycat一直没有返回结果呢。我马上到部署mycat的测试机上,查看日志,没有发现异常信息。于是顺手看了一下测试机器的资源使用情况,果然有意外发现,如下:

【图解】11张图搞懂分布式架构的演进过程

杀马特。学长 韩版系。学妹 提交于 2020-01-10 10:50:57
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 点击上方 " 程序员小乐 "关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 At any time, one should do their own emotional slaves. 任何时候,一个人都不应该做自己情绪的奴隶。 每日掏心 话 没有不会谢的花,没有不会退的浪,没有不会暗的光,没有不会好的伤,没有不会停下来的绝望。 来自:吴极心 | 责编:乐乐 链接:cloud.tencent.com/developer/article/1181751 程序员小乐(ID:study_tech)第 743 次推文 图片来自 Pexels 往日回顾: 比尔·盖茨、UNIX之父等全球14位IT大佬,总结的18句编程名言! 正文 一、什么是分布式架构 分布式系统(distributed system) 是建立在网络之上的软件系统。 内聚性 :是指每一个数据库分布节点高度自治,有本地的数据库管理系统。 透明性 :是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。 在分布式数据系统中,用户感觉不数据是分布的,即用户不须知道关系是否分割,有无副本,数据存在于那个站点以及事物在哪个站点上执行。 简单来说:在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体

分布式 | MyCat如何迁移到DBLE之分片算法对比解析:date分片

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-09 22:52:52
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 原创: 钟悦 关于作者 钟悦 - 资深DBLE用户 某宇宙行资深架构师,在大型重点项目中使用 DBLE。 常年与 MySQL 纠缠不清,经常运用技术处理大企业病的技术or非技术问题的一个挨踢从业者。 以每24小时作为一份时间(而非自然日),根据用户的配置有两种工作模式**:带状模式**中,用户仅定义开始日期时,从开始日期(含)开始,每份时间1个分片地无限增加下去; 环状模式 中,用户定义了开始日期和结束日期时,以结束日期(含)和开始日期(含)之间的时间份数作为分片总数(分片数量固定),以类似取模的方式路由到这些分片里。 1. DBLE 启动时,读取用户在 rule.xml 配置的 sBeginDate 来确定起始时间 2. 读取用户在 rule.xml 配置的 sPartionDay 来确定每个 MySQL 分片承载多少天内的数据 3. 读取用户在 rule.xml 配置的 dateFormat 来确定分片索引的日期格式 4. 在 DBLE 的运行过程中,用户访问使用这个算法的表时,WHERE 子句中的分片索引值(字符串),会被提取出来尝试转换成 Java 内部的时间类型 5. 然后求分片索引值与起始时间的差,除以 MySQL 分片承载的天数,确定所属分片 1. DBLE 启动时,读取用户在 rule.xml