步骤如下:
- 下载和安装MyCat
在MyCat官网https://www.mycat.io/zh-cn/下载对应平台的版本,解压缩后进入bin目录,执行mycat start启动MyCat。
- 配置MyCat
进入conf目录,修改server.xml文件,设置MyCat的监听端口和用户名密码等基本配置信息,例如:
<server>
<!--监听端口 -->
<bind-ip>0.0.0.0</bind-ip>
<bind-port>8066</bind-port>
<!-- 用户名密码 -->
<user name="root" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">testdb</property>
</user>
</server>
- 配置MySQL
在MyCat中配置MySQL需要先在schema.xml文件中定义MySQL节点和数据源,例如:
<dataHost name="mysql1">
<heartbeat>select 1;</heartbeat>
<writeHost host="192.168.1.11" url="jdbc:mysql://192.168.1.11:3306/test" user="root" password="123456"/>
<readHost host="192.168.1.11" url="jdbc:mysql://192.168.1.11:3306/test" user="root" password="123456"/>
</dataHost>
<schema name="testdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1,dn2">
<table name="user" primaryKey="id" rule="mod-long">
<column name="id" primaryKey="true" type="bigint(20)"/>
<column name="name" type="varchar(40)"/>
<column name="age" type="int(11)"/>
</table>
<dataNode name="dn1" dataHost="mysql1" database="test"/>
<dataNode name="dn2" dataHost="mysql2" database="test"/>
</schema>
其中,dataHost标签是MyCat提供的数据源标签,读写分离和负载均衡都是基于这个标签实现的。schema标签用于定义数据库表的分片规则,每个dataNode标签代表着一个MySQL实例上的数据库。
- 配置MySQL主从复制
在MySQL中配置主从复制需要先在my.cnf配置文件中设置server-id等参数,例如:
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=ROW
- 测试
启动MySQL和MyCat后,可以在MySQL中创建test库和user表,并插入一些数据,然后在MyCat中执行select语句测试数据读写分离以及负载均衡功能,例如:
use testdb;
select * from user;
此时MyCat会根据数据分片规则查询MySQL,在MySQL中进行数据访问并返回结果。若MyCat出现异常或者配置错误,可以查看MyCat日志以及MySQL日志进行排查。