原理
主要根据对sql的拦截,然后经过一定规则的分片解析、路由分析、读写分离分析、缓存分析等,然后将SQL发给后端真实的数据块,并将返回的结果做适当处理返回给客户端
mycat安装
linux通常安装方式
1.rpm方式 .rpm安装包,按顺序安装
2.yum方式,需要联网
3.解压后即可使用
4.解压后编译安装
这里主要讲第三种,就是解压即可用
第三种 解压后即可使用
1.上传安装包
下载一个安装包,上传到/opt目录(负责存放安装包)下
解压
tar -zxvf 文件名 // z指的是按照z的后缀扫描,x是解压,v是显示信息,f是指定文件
2.安装
将opt目录下的文件目录复制到/usr/local(该目录主要存放软件安装目录。默认安装路径)
cp -r mycat /usr/local (-r : 递归拷贝,当拷贝文件夹时使用
3.配置
第一步:修改server.xml,修改为mycat
schemas:mycat的逻辑库名,可以不改
第二步:修改schema.xml
删除无用的测试表
显示行号
esc+:set nu
删除(删除一行是dd,删除多行是dnd)
直接按d27d,就删除了27行(从光标位置删除27行)
设置逻辑数据库默认节点
删除无用节点(dd即可),留下一个Node即可
删除多余写主机(因为mysql搭的读写分离的主从结构)
删除多余注释(d22d),我需要的就是这18行配置文件
为了避免歧义修改一下host
修改host和默认db(默认db这里的testdb必须是mysql中都有的数据源)
修改写主机和读主机ip(账号密码为mysql的用户名密码)
测试Mycat是否能连接Mysql
[root@localhost conf]# mysql -uroot -p123456 -h 192.168.25.146 -P 3306 // -h后面是目的ip,-P后面是mysql端口号
启动程序
cd …
cd bin
启动方式
- 控制台启动(可以第一时间看到启动日志,方便定位问题)
./mycat console
2.后台启动:去mycat/bin目录下 ./mycat start (日常运行)
登录mycat
管理窗口
[root@localhost ~]# mysql -umycat -p123456 -h 192.168.25.150 -P 9066
数据窗口
[root@localhost ~]# mysql -umycat -p123456 -h 192.168.25.150 -P 8066
如下图,连接成功,有点像mysql,不过看下面的版本信息可以清晰的看出是mycat
查看数据库
show databases
知识点
6个特殊目录,在启动时不需要加./
- /bin
- /usr/bin
- /usr/local/bin
- /sbin
- /usr/sbin
- /usr/local/sbin
配置文件(3个配置文件)
- schema.xml:定义逻辑库
- rule.xml(定义分片规则)
- server.xml:定义用户以及系统相关变量,如端口等
遇到的问题
1.测试远程连接mysql
解决方案:关闭防火墙
[root@localhost ~]# systemctl disable firewalld [root@localhost ~]# service firewalld stop
2.ERROR 1129 (HY000): Host ‘192.168.25.150’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’
解决方案:
查看连接失败次数,发现允许连接失败次数较少
show variables like 'max_connect_errors';
在目标mysql服务器执行:
mysql> set global max_connect_errors = 100;
如何使用navicat连接mycat
1.ERROR 1003 (HY000): Unsupported statement
应该连接mycat的 8066端口
9066是管理端口。
2.
默认db这里的testdb必须是mysql中都有的数据源,没有逻辑数据源
必须和下图一样有你配置的逻辑数据源