MyCat基础入门

1. MyCat安装

去官网下载安装包:

在这里插入图片描述

下载路径: 官方网站:http://www.mycat.org.cn/
github地址https://github.com/MyCATApache

上传到服务器上并解压:

在这里插入图片描述

它解压后是一个叫mycat的文件夹

在这里插入图片描述

去maycat的bin目录下,执行命令 ./mycat start 启动服务 ./mycat stop 停止服务 ./mycat
restart 重启服务

在这里插入图片描述

mycat的conf文件夹下有一个server.xml,里面有,mycat连接的用户名和密码

在这里插入图片描述

在这里插入图片描述

可以看到root用户密码是123456 连接使用mysql客户端

> mysql -h 127.0.0.1 -u root -p -P 8066

在这里插入图片描述

远程连接,记得防火墙开放8066端口 使用iptables开放如下端口

/sbin/iptables -I INPUT -p tcp --dport 8066 -j ACCEPT

保存

/etc/rc.d/init.d/iptables save

重启服务

service iptables restart

在这里插入图片描述

注意新安装的mycat,再使用远程工具的时候可能会卡住,多等一会就好了。

在这里插入图片描述
在这里插入图片描述

2. 分片

在mysql连接里建立三个数据库,注意是从前我们用的mysql连接,不是mycat。

在这里插入图片描述

修改mycat/conf/schema.xml

在这里插入图片描述

<table>用来配置表,原来的配置文件中有许多测试用的表。我们追加两个表,test_tb01和test_tb02。
test_tb01放到三个节点上,分别对应新创建的三个库mycat_db1、mycat_db2、
mycat_db3。rule指定它的分片策略是按照id分

在这里插入图片描述

分片规则:https://blog.csdn.net/u011731544/article/details/80579088

在这里插入图片描述

test_tb02的type=global,代表全局表
改完重启mycat

在这里插入图片描述

执行语句

DROP TABLE IF EXISTS `test_tb01`;
CREATE TABLE `test_tb01` (`ID` int(11) NOT NULL AUTO_INCREMENT,`NAME` varchar(255) DEFAULT NULL,PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `test_tb01`(id,name) VALUES ('5000001', 'aaaa');
INSERT INTO `test_tb01`(id,name) VALUES ('1', 'aaaa');
INSERT INTO `test_tb01`(id,name)  VALUES ('2', 'aaaa');
INSERT INTO `test_tb01`(id,name)  VALUES ('10000001', 'aaaa');DROP TABLE IF EXISTS `test_tb02`;
CREATE TABLE `test_tb02` (`ID` int(11) NOT NULL AUTO_INCREMENT,`NAME` varchar(255) DEFAULT NULL,PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `test_tb02` (name)VALUES ('cccc');

注意表名的大小写要和配置文件中一致。 执行之后可以看到test_tb01的数据,根据id的不同,存储到了三个节点中。
test_tb02的数据在两个节点中是同步的。

启动mysql

cd /usr/local/mysql/support-files
./mysql.server start

3. 读写分离

数据库读写分离对于大型系统或者访问量很高的互联网应用,是必不可少的一个重要功能。对于MySql来说,标准的读写分离是主从模式,一个写节点Master跟着多个读节点。读节点的数量取决于系统的压力。通常1-3个读节点。

MyCat的读写分离需要Mysql的主从复制机制配合。 MySql主从复制需要注意的是:

  1. 主DB Server和从DB Server的数据库版本一致
  2. 主DB Server和从DB Server的数据库数据一致
  3. 主DB Server开启二进制日志,主DB Server和从DB Server的server_id必须唯一

3.1 主库配置

这里是引用

修改主库的/etc/my.cnf,追加如下内容:

binlog-do-db=mycat_db1
binlog-do-db=mycat_db2
binlog-do-db=mycat_db3
binlog-ignore-db=mysql
log-bin=mysql-bin
server-id=144

在这里插入图片描述

binlog-do-db是要同步的库

binlog-ignore-db是不同步的库

log-bin开启二进制日志

server-id必须是唯一的服务号,可以写成ip最后一段

重启mysql

service mysql restart

登录mysql,创建备份用户并授权

grant file on *.* to 'backup' @'%' identified by '123456';grant replication slave,replication client on *.* to 'backup' @'%' identified by '123456'; flush privileges;

查看现在有哪些用户:

select user,host from mysql.user;

在这里插入图片描述

查看master状态

show master status\G;

在这里插入图片描述

3.2 配置从库

修改从库的/etc/my.cnf
server-id=139 可以使用ip的最后一段

在这里插入图片描述

重启服务

service mysql start

连接mysql,配置master的信息,注意这是一条语句,中间不要断开

CHANGE MASTER TO MASTER_HOST='10.0.107.145', MASTER_USER='backup',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000007',MASTER_LOG_POS=120;

在这里插入图片描述

其中MASTER_HOST是主库的ip,MASTER_USER和MASTER_PASSWORD是同步时的账号及密码,就是3.1中创建并授权的账号。MASTER_LOG_FILE是3.1中show master status时的file。 MASTER_LOG_POS 是show master status时的Position。

启动slave

start slave;

在这里插入图片描述

查看从服务器状态:

show slave status\G;

在这里插入图片描述

Slave_IO_Running: Yes //必须是YES
Slave_SQL_Running: Yes //必须是YES

3.3 配置mycat

在这里插入图片描述

balance:

balance=“0”, 不开启读写分离机制,所有读操作都发送到当前可用的writeHost 上。

balance=“1”,全部的 readHost 与 stand by writeHost 参与 select
语句的负载均衡,简单的说,当双主双从模式(M1 ->S1 , M2->S2,并且 M1 与 M2 互为主备),正常情况下, M2,S1,S2
都参与 select 语句的负载均衡。

balance=“2”,所有读操作都随机的在 writeHost、 readhost 上分发。

balance=“3”, 所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost
不负担读压力,注意 balance=3 只在 1.4 及其以后版本有, 1.3 没有。

writeType:

writeType=“0”, 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个

writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties .

writeType=“1”,所有写操作都随机的发送到配置的 writeHost。

writeType=“2”,没实现。

switchType:

-1 表示不自动切换

1 默认值,自动切换

2 基于MySQL 主从同步的状态决定是否切换

重启mycat服务。

4. java连接mycat

数据库链接地址,连接服务器的8066端口,指定连接到TESTDB库,用户名密码是mycat的server.xml中配置的用户名密码。其它操作和连接mysql一样:

jdbc:mysql://www.vm.com:8066/TESTDB?characterEncoding=utf-8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/195094.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vscode删除后重装还有原来的配置问题,彻底删除vscode,删除vscode安装过的插件和缓存

VSCode卸载后进行重新安装&#xff0c;发现新安装的还有原来的一些配置&#xff0c;卸载的不彻底&#xff0c;有时候也容易出问题&#xff0c;可按照如下方法卸载干净&#xff1a; 1.进入控制面板卸载VSCode&#xff0c;也可以在VSCode的安装目录下用程序自带的卸载程序 2.这…

摄影店信息展示服务预约小程序的效果如何

无论视频还是图片在生活中的用途都非常广&#xff0c;市场中的摄影店也非常多&#xff0c;比如婚纱照、产品照、食物照、服装照等&#xff0c;除了婚纱照是刚需外&#xff0c;如今随着线上宣传渠道成为主流&#xff0c;无论企业还是自媒体个人都有一定的摄影需求&#xff0c;因…

微信小程序 限制字数文本域框组件封装

微信小程序 限制字数文本域框 介绍&#xff1a;展示类组件 导入 在app.json或index.json中引入组件 "usingComponents": {"text-field":"/pages/components/text-field/index"}代码使用 <text-field maxlength"500" bindtabsIt…

概率论和数理统计(三)数理统计基本概念

前言 “概率论”是给定一个随机变量X的分布F(x),然后求某事件A概率 P ( x ∈ A ) P(x \in A) P(x∈A)或者随机变量X的数字特征.“统计”是已知一组样本数据 { x 1 , x 2 , . . . x n } \{x_1,x_2,...x_n\} {x1​,x2​,...xn​},去求分布F(x) 统计的基本概念 在统计中&#x…

【无标题】chapter6卷积

此例以说明全连接层处理图片的时候会遇到参数过多 模型过大的问题 参数比要研究的物体总数还多 卷积&#xff0c;特殊的全联接层 平移不变形&#xff0c;局部性 原本权重为二维&#xff08;输入和输出全联接&#xff0c;想想下表组合&#xff0c;就是个二维的矩阵&#xff09;…

ResNet 原论文及原作者讲解

ResNet 论文摘要1. 引入2. 相关工作残差表示快捷连接 3. 深度残差学习3.1. 残差学习3.2. 快捷恒等映射3.3. 网络体系结构普通网络 plain network残差网络 residual network 3.4. 实施 4. 实验4.1. ImageNet分类普通的网络 plain network残差网络 residual network恒等vs.快捷连…

修改 jar 包中的源码方式

在我们开发的过程中&#xff0c;我们有时候想要修改jar中的代码&#xff0c;方便我们调试或或者作为生产代码打包上线&#xff0c;但是在IDEA中&#xff0c;jar包中的文件都是read-only&#xff08;只读模式&#xff09;。那如何我们才能去修改jar包中的源码呢&#xff1f; 1.…

Python winreg将cmd/PowerShell(管理员)添加到右键菜单

效果 1. 脚本 用管理员权限运行&#xff0c;重复执行会起到覆盖效果&#xff08;根据sub_key&#xff09;。 icon自己设置。text可以自定义。sub_key可以改但不推荐&#xff08;避免改成和系统已有项冲突的&#xff09;。command不要改。 from winreg import *registry r&q…

第28章_mysql缓存策略

文章目录 MySQL缓存方案目的分析缓存层作用举例 缓存方案选择场景分析 提升MySQL访问性能的方式MySQL主从复制读写分离连接池异步连接 缓存方案缓存和MySQL一致性状态分析制定读写策略 同步方案canalgo-mysql-transfer 缓存方案的故障问题及解决缓存穿透缓存击穿缓存雪崩缓存方…

「分享学习」SpringCloudAlibaba高并发仿斗鱼直播平台实战完结

[分享学习]SpringCloudAlibaba高并发仿斗鱼直播平台实战完结 第一段&#xff1a;简介 Spring Cloud Alibaba是基于Spring Cloud和阿里巴巴开源技术的微效劳框架&#xff0c;普遍应用于大范围高并发的互联网应用系统。本文将引见如何运用Spring Cloud Alibaba构建一个高并发的仿…

基于JavaWeb+SSM+社区居家养老服务平台—颐养者端微信小程序系统的设计和实现

基于JavaWebSSM社区居家养老服务平台—颐养者端微信小程序系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 在复杂社会化网络中&#xff0c;灵活运用社会生活产生的大数据&am…

理解 R-CNN:目标检测的一场革命

一、介绍 对象检测是一项基本的计算机视觉任务&#xff0c;涉及定位和识别图像或视频中的对象。多年来&#xff0c;人们开发了多种方法来应对这一挑战&#xff0c;但基于区域的卷积神经网络&#xff08;R-CNN&#xff09;的发展标志着目标检测领域的重大突破。R-CNN 及其后续变…

php-cli

//运行index.php ./php index.php//启动php内置服务器 ./php -S 0.0.0.0:8080//启动内置服务在后台运行&#xff0c;日志输出到本目录下的server.log nohup ./php -S 0.0.0.0:8080 -t . > server.log 2>&1 &# 查找 PHP 进程 ps aux | grep "php -S 0.0.0.0:…

用Postman发送xml数据

启动Postman&#xff1a; 点击左上角的“New”&#xff0c;在弹出窗中选择HTTP&#xff1a; 选择POST方法&#xff1a; 点击Body&#xff1a; 选择raw&#xff1a; 在右侧的下拉列表中选择XML&#xff1a; 在下面的输入框中输入或者从其它地方拷贝XML文本&#xff1a;…

玩具、儿童用品、儿童服装上亚马逊TEMU平台CPC认证办理

CPC认证是Childrens Product Certificate的简称&#xff0c;即儿童产品证书。它是美国强制性法规CPSIA要求的一部分&#xff0c;该法规主要针对12岁及以下儿童使用的产品&#xff0c;如玩具、儿童用品、儿童服装等。 一、儿童小汽车CPC测试项目可能会因产品标准和法规的不同而…

12-2- DCGAN -简单网络-卷积网络

功能 随机噪声→生成器→MINIST图像。 训练方法 0 损失函数:gan的优化目标是一个对抗损失,是二分类问题,用BCELoss 1 判别器的训练,首先固定生成器参数不变,其次判别器应当将真实图像判别为1,生成图像判别为0 loss=loss(real_out, 1)+loss(fake_out, 0) 2 生成器的…

CocosCreator3.8神秘面纱 CocosCreator 项目结构说明及编辑器的简单使用

我们通过Dashboard 创建一个2d项目&#xff0c;来演示CocosCreator 的项目结构。 等待创建完成后&#xff0c;会得到以下项目工程&#xff1a; 一、assets文件夹 assets文件夹&#xff1a;为资源目录&#xff0c;用来存储所有的本地资源&#xff0c;如各种图片&#xff0c;脚本…

BIO、NIO、AIO三者的区别及其应用场景(结合生活例子,简单易懂)

再解释三者之前我们需要先了解几个概念&#xff1a; 阻塞、非阻塞&#xff1a;是相较于线程来说的&#xff0c;如果是阻塞则线程无法往下执行&#xff0c;不阻塞&#xff0c;则线程可以继续往下 执行。同步、异步&#xff1a;是相较于IO来说的&#xff0c;同步需要等待IO操作完…

ncbi-datasets-cli-高效便捷下载NCBI数据

文章目录 简介安装datasets download下载基因组/基因序列按照GCA list文件编号下载下载大基因组genome完整参数gene参数 datasets summary下载元数据dataformat将json转换成表格格式通过json文件解析其他字段问题 简介 NCBI Datasets 可以轻松从 NCBI 数据库中收集数据。使用命…