mycat 能做什么?
1.读写分离
2.数据分片
垂直拆分(分库)、水平拆分(分表)、垂直+水平拆分(分库分表)
3.多数据源整合
mycat原理:
最重要的是拦截,拦截用户发的sql语句,对sql语句做分析:
分片分析,路由分析,读写分离分析,缓存分析,然后将此sql
发往后端真实的数据库,并将返回的结果做适当的处理,最终
返回给用户。
mycat 安装
1.rpm方式
。rpm安装包
2.yum方式安装 联网
3.解压后即可使用
4.加压后编译安装
先配置单主单从
前置条件: 先配置好2个虚拟机 并安装好了mysql 且能互通连接
我们用Mycat-server-1.6.7.5-release-20200410174409-linux.tar.gz 解压后得到mycat 目录
cd mycat
看到
drwxr-xr-x. 2 root root 190 8月 20 08:22 bin
drwxrwxrwx. 2 root root 6 10月 22 2019 catlet
drwxrwxrwx. 4 root root 4096 8月 21 09:16 conf
drwxr-xr-x. 2 root root 4096 8月 20 08:22 lib
drwxrwxrwx. 3 root root 92 8月 21 09:16 logs
drwxr-xr-x. 2 root root 6 8月 20 22:19 tmlogs
-rwxrwxrwx. 1 root root 227 4月 10 17:44 version.txt
进入conf目录:
三个配置文件:
schema.xml 定义逻辑库,表,分片节点等内容
rule.xml 定义分片规则
server.xml 定义用户及系统相关变量 如端口等
修改 server.xml:
主要修改:用户名和密码:TESTDB 作为逻辑库不要动
<user name="root" defaultAccount="true">
<property name="password">root</property>
<property name="schemas">TESTDB</property>
<property name="defaultSchema">TESTDB</property>
<!--No MyCAT Database selected 错误前会尝试使用该schema作为schema,不设置则为null,报错 -->
<!-- 表级 DML 权限设置 -->
<!--
<privileges check="false">
<schema name="TESTDB" dml="0110" >
<table name="tb01" dml="0000"></table>
<table name="tb02" dml="1111"></table>
</schema>
</privileges>
-->
</user>
修改schema.xml
最后就剩下这些代码:writeHost 标签配置写库的用户名密码,ip readHost配置读库的用户名密码,ip
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema