当前位置: 首页 > news >正文

MySQL分库分表与MyCAT

分库分表

分库:拆分数据库,当单台数据库服务存储容量不足时,或者并发量过高,单机资源不足。

分表:拆分数据表,当单表数量过大时,索引(B+树)查询效率会变低,2千万数据左右。

方法

垂直分库:将原来一个库中的表分到不同库中。

垂直分表:将原来的表,按字段拆分成多个表。

水平分库:按照数据内容拆分,例如按年月拆分数据、数据范围拆分、取模运算

水平分表:也是按照内容拆分表

使用MyCAT分布式集群中间件,可以实现分库、分表、读写分离、负载均衡、故障(屏蔽)转移。

MyCAT支持MySQL网络协议,可以使用mysql的客户端进行操作。

使用Java语言开发,安装Java运行环境(jdk)

配置文件常见格式

ini:xx.ini/xx.conf/xx.cnf/xx.repo

xml:标签语言,Java项目,大数据

JSON:JavaScript对象表示法。API接口数据交换、配置文件、存储简单结构化数据等。

yaml:采用缩进表示层级关系,语法简洁,可读性强,支持复杂数据结构,如列表、字典等。

数据源:MyCAT用于连接后端的MySQL数据库

用户名、密码、IP

MyCAT集群设置:对后端MySQL进行组合设置,例如主、从、只读、读写、分类、分表

clusters:设置集群

MyCAT用户设置:users

MyCAT逻辑库设置:schemas

mycat注释指令:

清空所有配置

/*+ mycat:resetConfig{} */;

创建mycat用户

/*+ mycat:createUser{

    "username":"zj",

    "password":"123456",

    "ip":"null",

    "transactionType":"xa"}

*/;

查看mycat的用户

/*+ mycat:showUsers */;

删除用户

/*+ mycat:dropUser{ "username":"zj"} */;

创建数据源

/*+ mycat:createDataSource{

    "dbType":"mysql",

    "idleTimeout":60000,

    "initSqls":[],

    "initSqlsGetConnection":true,

    "instanceType":"READ_WRITE",

    "maxCon":1000,

    "maxConnectTimeout":3000,

    "maxRetryCount":5,

    "minCon":1,

    "name":"dc1",

    "password":"root123",

    "type":"JDBC",

    "url":"jdbc:mysql://127.0.0.1:3306?useUnicode=true&serverTimezone=UTC&characterEncoding=UTF-8",

    "user":"root",

    "weight":0}

*/;

查看数据源

/*+ mycat:showDataSources{} */;

删除数据源

/*+ mycat:dropDataSource{

    "dbType":"mysql",

    "idleTimeout":60000,

    "initSqls":[],

    "initSqlsGetConnection":true,

    "instanceType":"READ_WRITE",

    "maxCon":1000,

    "maxConnectTimeout":3000,

    "maxRetryCount":5,

    "minCon":1,

    "name":"dc1",

    "type":"JDBC",

    "weight":0}

*/;

MyCAT安装步骤

1.安装好mysql和jdk1.8

(1)安装mysql

配置yum源

mount /dev/cdrom /meida

cd /etc/yum.repos.d

关闭防火墙,沙盒

systemctl stop firewalld

systemctl

getenforce 0

set

mysql 安装

wget 192.168.56.200/Software/mysql_install.sh

一键安装

bash mysql_install.sh

重新加载

source /etc/profile

(2)安装jdk1.8

yum -y install java-1.8.0-openjdk.x86_64

测试安装,显示java版本则为安装成功

java -version

显示如下:

openjdk version "1.8.0_392"

OpenJDK Runtime Environment Corretto-8.392.08.1 (build 1.8.0_392-b08)

OpenJDK 64-Bit Server VM Corretto-8.392.08.1 (build 25.392-b08, mixed mode)

2.安装MyCAT

(1)创建多级目录

mkdir -p  /usr/local/src

(2)进入目录

cd /usr/local/src

(3)下载

如果没有wget,则安装wget

yum -y install wget

a.第三方下载

wget https://download.topunix.com/MySQL/Software-Cluster/Software-Mycat/Mycat2/mycat2-install-template-1.20.zip

wget https://download.topunix.com/MySQL/Software-Cluster/Software-Mycat/Mycat2/mycat2-1.21-release-jar-with-dependencies.jar

b.局域网下载(192.168.56.200)

wget http://192.168.56.200/Software/mycat2-install-template-1.21.zip

wget http://192.168.56.200/Software/mycat2-1.21-release-jar-with-dependencies.jar

3.解压并移动到目录下

(1)解压

yum -y install unzip

unzip mycat2-install-template-1.21.zip

(2)移动到/usr/local目录下

mv mycat ../mv mycat /usr/local

(3)修改权限

把bin目录文件加执行权限

cd /usr/local/mycat/

chmod +x  bin/*

(4)把所需的jar复制到mycat/lib目录

cp /usr/local/src/mycat2-1.21-release-jar-with-dependencies.jar /usr/local/mycat/lib/

mycat2-1.21-release-jar-with-dependencies.jar是MyCAT2依赖文件,缺失会导致MyCAT启动失败

4.启动一个3306的MySQL

service mysqld start #启动mysql服务

mysql -uroot -proot123 #能够连接而上mysql

5.配置物理库地址

配置文件位置:/usr/local/mycat/conf/datasources/prototypeDs.datasource.json

vim /usr/local/mycat/conf/datasources/prototypeDs.datasource.json

{

    "dbType": "mysql",

    "idleTimeout": 60000,

    "initSqls": [],

    "initSqlsGetConnection": true,

    "instanceType": "READ_WRITE",

    "maxCon": 1000,

    "maxConnectTimeout": 3000,

    "maxRetryCount": 5,

    "minCon": 1,

    "name": "prototypeDs",

    "password": "root123", #把密码改成自己的

    "type": "JDBC",

    "url": "jdbc:mysql://localhost:3306?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",

    "user": "root",

    "weight": 0

}

6.启动MyCAT

cd /usr/local/mycat/bin

./mycat start #启动

./mycat stop #停止

./mycat console #前台运行

./mycat restart #重启

./mycat status #查看启动状态

7.可以配置MyCAT和MySQL的环境变量,方便之后执行

vim /etc/profile

在文件末行添加:

export MYCAT_PATH=/usr/local/mycat

export MYSQL_PATH=/usr/local/mysql

export PATH="$MYSQL_PATH/bin:$MYCAT_PATH/bin:$PATH"

ESC:wq退出文件:重新加载配置文件

source  /etc/profile

8.连接MyCAT

MyCAT的默认用户是:root

初始密码是:123456

端口号是:8066

使用MySQL默认客户端或者mycli命令行登陆MyCAT

mysql -uroot -p123456 -P8066 -h127.0.0.1或者mycli -uroot -P8066 -h"127.0.0.1"

http://www.dtcms.com/a/341635.html

相关文章:

  • open webui源码分析5-Tools
  • 基于单片机水质检测系统/污水监测系统/水情监测
  • ansible中roles角色是什么意思?
  • 详解flink table api基础(三)
  • 【网络】使用 DNAT 进行负载均衡时,若未配置配套的 SNAT,回包失败
  • 猫头虎开源AI分享|基于大模型和RAG的一款智能text2sql问答系统:SQLBot(SQL-RAG-QABot),可以帮你用自然语言查询数据库
  • Three.js 初级教程大全
  • 分享|财务大数据实验室建设方案
  • 机器学习(Machine Learning, ML)
  • Web网站的运行原理2
  • Ubuntu实现程序开机自动运行
  • AI每日需求进度分析总结(附实战操作)
  • 云原生环境下的ITSM新趋势:从传统运维到智能化服务管理
  • 政务网站与新媒体自查情况的报告怎么写?
  • 【ssh】ssh免密登录配置【docker】
  • STM32_0001 KEILMDK V5.36 编译一个STM32F103C8T6说core_cm3.h文件找不到以及编译器版本不匹配的解决办法
  • 25_基于深度学习的行人检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
  • 详解ThreadLocal<HttpServletRequest> requestThreadLocal
  • Kernel Study
  • 关联规则挖掘1:Apriori算法
  • Deepresearch Agents:下一代自动研究智能体的架构革命与产业实践
  • CAMEL-Task1-CAMEL环境配置及你的第一个Agent
  • postgreSQL卸载踩坑
  • Kolors Virtual Try-On:快手可图推出的AI虚拟换衣项目
  • JAVA中向量数据库(Milvus)怎么配合大模型使用
  • 简笔成画:让AI绘画变得简单而有趣
  • pyecharts可视化图表仪表盘_Gauge:从入门到精通
  • 【Linux】重生之从零开始学习运维之LVS
  • UUID(通用唯一标识符)详解和实践
  • 今日行情明日机会——20250820