目录
第一章:mysql的主从复制之一主一从
第二章:mysql的主从复制之双主双从
第三章:mycat实现数据库的读写分离
第四章:mycat实现mysql分库(垂直切分)
第五章:mycat实现mysql分库(水平切分)
第六章:mycat ER表与全局表
第七章:mycat全局序列号
mycat实现数据库的读写分离
前置配置:
准备4台mysql服务器node01、node02、node03和node04。并且实现双主双从的配置。不了解如何配置的请看第一章和第二章。
这里四台服务器的IP分别为:
组别 | 服务器名 | IP地址 | 角色 |
---|---|---|---|
第一组 | node01 | 192.168.1.106 | master |
第一组 | node02 | 192.168.1.107 | slave |
第二组 | node03 | 192.168.1.108 | master |
第二组 | node04 | 192.168.1.109 | slave |
mycat的安装
- mycat的下载
官方下载地址为:
http://dl.mycat.org.cn/1.6.7.1/Mycat-server-1.6.7.1-release-20200209222254-linux.tar.gz
- 环境配置:
解压文件到/usr/local文件夹下
tar -zxvf Mycat-server-1.6.7.1-release-20200209222254-linux.tar.gz -C /usr/local
配置环境变量
vi /etc/profile
添加如下配置信息:
export MYCAT_HOME=/usr/local/mycat
export PATH=$MYCAT_HOME/bin:$PATH:$JAVA_HOME/bin
mycat配置
进入到/usr/local/mycat/conf目录下,修改该文件夹下的配置文件
- 修改server.xml文件,配置用户信息。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
<user name="root" defaultAccount="true">
<property name="password">123456</property>
<!--设置虚拟数据库名称,可以随便起名,但是需要和下面的schema.xml中的配置对应上-->
<property name="schemas">TESTDB</property>
<property name="defaultSchema">TESTDB</property>
</user>
</mycat:server>
- 修改schema.xml文件,配置数据库信息
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!--
name:设置虚拟数据库名称,可以随便起名,但是需要和上面的server.xml中的配置对应上
dataNode:设置引用下面的dataNode配置名称
-->
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
</schema>
<!--
name:设置dataNode 的名称需要与schema 中的dataNode一样
dataHost:设置引用下面的dataHost 配置名称
database:真实数据库的库名
-->
<dataNode name="dn1" dataHost="host1" database="duck"/>
<!--
name:设置dataHost 的名称需要与dataNode 中的dataHost一样
balance:此属性有四个值,用来做负载均衡的,下面我们来详细介绍
balance=0 :不开启读写分离机制,所有读操作都发送到当前可用的writehost上
balance=1:全部的readhost和stand by writehost参与select 语句的负载均衡,简单的说,当双主双从模式下,其他的节点都参与select语句的负载均衡
balance=2:所有读操作都随机的在writehost,readhost上分发
balance=3:所有读请求随机的分发到readhost执行,writehost不负担读压力
switchType:参数writeType,表示写操作发送到哪台机器,此参数有两个值可以进行设置:
writeType=0:所有写操作都发送到配置的第一个writeHost,第一个挂了切换到还生存的第二个
writeType=1:所有写操作都随机的发送到配置的writehost中,1.5之后废弃
-->
<dataHost name="host1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<!--心跳包-->
<heartbeat>select user()</heartbeat>
<!--写节点配置 host设置连接名称,唯一任意值-->
<writeHost host="hostM1" url="192.168.1.106:3306" user="root" password="123456">
<!--读节点配置-->
<readHost host="hostS1" url="192.168.1.107:3306" user="root" password="123456"></readHost>
</writeHost>
<!--写节点配置-->
<writeHost host="hostM2" url="192.168.1.108:3306" user="root" password="123456">
<!--读节点配置-->
<readHost host="hostS2" url="192.168.1.109:3306" user="root" password="123456"></readHost>
</writeHost>
</dataHost>
</mycat:schema>
启动mycat
mycat的启动有两种方式,一种是控制台启动,一种是后台启动。使用控制台启动的方式启动,当配置文件写错之后,可以方便的看到错误。但是在生产环境中,使用后台启动的方式比较稳妥。
- 控制台启动:去mycat/bin目录下执行
./mycat console
- 后台启动:去mycat/bin目录下执行 ./mycat start
./mycat start
按照如上配置在安装的时候应该不会报错,如果出现错误,根据错误的提示解决即可。成功启动如下:
登录验证
管理窗口的登录
从另外的虚拟机去登录访问当前mycat,输入如下命令即可
mysql -uroot -p123456 -P 9066 -h 192.168.85.111
此时访问的是mycat的管理窗口,可以通过show @@help查看可以执行的命令
数据窗口的登录
从另外的虚拟机去登录访问mycat,输入命令如下:
mysql -uroot -p123456 -P8066 -h 192.168.85.111
数据窗口可以执行各种增删改查的SQL。