windows环境下配置MyCat+MySQL搭建分布式数据库

40 min read

步骤如下:

  1. 下载和安装MyCat

在MyCat官网https://www.mycat.io/zh-cn/下载对应平台的版本,解压缩后进入bin目录,执行mycat start启动MyCat。

  1. 配置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>
  1. 配置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实例上的数据库。

  1. 配置MySQL主从复制

在MySQL中配置主从复制需要先在my.cnf配置文件中设置server-id等参数,例如:

[mysqld]
server-id=1

log-bin=mysql-bin
binlog-format=ROW
  1. 测试

启动MySQL和MyCat后,可以在MySQL中创建test库和user表,并插入一些数据,然后在MyCat中执行select语句测试数据读写分离以及负载均衡功能,例如:

use testdb;
select * from user;

此时MyCat会根据数据分片规则查询MySQL,在MySQL中进行数据访问并返回结果。若MyCat出现异常或者配置错误,可以查看MyCat日志以及MySQL日志进行排查。