1、MyCat入门
1.Mycat简介
[1].Mycat是什么
Mycat 是数据库中间件
[2].why使用Mycat
①.Java与数据库紧耦合
②.高访问量高并发对数据库的压力
③.读写请求数据不一致
[3].数据库中间件
[3].Mycat官网
[4].Mycat作用
(1).读写分离
(2).数据分片
垂直拆分(分库)、水平拆分(分表)、垂直+水平拆分(分库分表)
(3).多数据源整合
[5].Mycat原理
Mycat 的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的 SQL 语句,首先对SQL语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。
这种方式把数据库的分布式从代码中解耦出来,程序员察觉不出来后台使用 Mycat 还是MySQL。
2.Mycat安装启动
[1].解压后即可使用
解压缩文件拷贝到 linux 下 /usr/local/
(1)将tar包放到Linux的/opt
(2)解压Mycat
[root@pluto opt]# cd /opt/ [root@pluto opt]# tar -zxvf Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz |
(3)复制Mycat到/usr/local/
因为mycat是目录,所以我们需要-r递归参数
[root@pluto mycat]# cp -r /opt/mycat/ /usr/local/ |
(4)配置文件
schema.xml:定义逻辑库,表、分片节点等内容
rule.xml:定义分片规则
server.xml:定义用户以及系统相关变量,如端口等
1)server.xml
修改用户信息,与MySQL区分
<user name="mycat" defaultAccount="true"> <property name="password">123456</property> <property name="schemas">TESTDB</property> </user> |
2)schema.xml
删除<schema>标签间的表信息,<dataNode>标签只留一个,<dataHost>标签只留一个,<writeHost> <readHost>只留一对
[root@pluto 桌面]# vim /usr/local/mycat/conf/schema.xml |
<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"> </schema> <dataNode name="dn1" dataHost="host1" database="testdb" /> <dataHost name="host1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM1" url="192.168.188.188:3306" user="root" password="123456"> <!-- can have multi read hosts --> <readHost host="hostS2" url="192.168.188.189:3306" user="root" password="123456" /> </writeHost> </dataHost> </mycat:schema> |
3).验证数据库
Mycat 作为数据库中间件要和数据库部署在不同机器上,所以要验证远程访问情况。
mysql -uroot -p123123 -h 192.168.188.188 -P 3306 mysql -uroot -p123123 -h 192.168.188.189 -P 3306
#如远程访问报错,请建对应用户 grant all privileges on *.* to root@'%' identified by '123456'; %代表全部用户 |
[2].启动mycat
[root@pluto bin]# pwd /usr/local/mycat/bin [root@pluto bin]# ./mycat console |
启动mycat遇到的问题
https://blog.csdn.net/chtjava/article/details/87078154 |
[3].登录mycat
(1).登录数据窗口
此登录方式用于通过 Mycat 查询数据,我们选择这种方式访问 Mycat
[root@host79 ~]# mysql -umycat -p123456 -h 192.168.188.188 -P 8066 |
(2).登录后台管理窗口
[root@host79 ~]# mysql -umycat -p123456 -h 192.168.188.188 -P 9066 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步