-
准备与说明
centos7安装mycat,并配置基本读写分离
前提准备:
- 服务器安装好java环境变量
- 安装好两个mysql,并配置好了主从复制。mysql安装可以参考文章:https://blog.csdn.net/shuair/article/details/118393294,mysql主从复制可以参考文章:https://blog.csdn.net/shuair/article/details/118314814
- 若不配置读写分离,也就不用配置mysql的主从复制,则准备一个mysql即可
-
下载
到官网下载mycat,浏览器下载导入到服务器或直接在服务器下载
wget http://dl.mycat.org.cn/1.6.7.6/20210303094759/Mycat-server-1.6.7.6-release-20210303094759-linux.tar.gz
-
解压
将下载好的mycat压缩包解压到/usr/local目录下,解压后会生成mycat文件夹,这个目录不是强制的,是一般约定的目录
tar -zxvf Mycat-server-1.6.7.6-release-20210303094759-linux.tar.gz -C /usr/local
-
改配置
修改配置文件 ,进入到/usr/local/mycat/conf文件夹
cd /usr/local/mycat/conf
这个文件夹下有三个重要的配置文件,后续要经常改动
- server.xml:定义用户以及系统相关变量,如端口等
- schema.xml:定义逻辑库,表、分片节点等内容
- rule.xml:定义分片规则
-
修改server.xml
为了与mysql区分,将root用户名改成mycat
-
修改schema.xml
整体替换,只保留有用的配置,可以提前备份schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" randomDataNode="dn1" dataNode="dn1"></schema>
<dataNode name="dn1" dataHost="host1" database="testdb" />
<dataHost name="host1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="jdbc:mysql://写mysql的ip:端口号" user="root" password="密码">
<readHost host="hostS1" url="jdbc:mysql://读mysql的ip:端口号" user="root" password="密码"/>
</writeHost>
</dataHost>
</mycat:schema>
上面的配置其实是不能做到读写分离的,需要调整balance的值,当前的值为0
balance值的含义
- balance=0,不读写分离,读操作也发送到写mysql(mycat配置为writeHost,同一时间只有一个写mysql)上
- balance=1,读操作发送到所有读mysql、备写mysql(双主双从模式下,mycat中配置为stand by writeHost的为备写mysql)上
- balance=2,读操作发送到所有的读mysql、写mysql(包括主备)
- balance=3,读操作发送到所有的读mysql
为了方便验证,我们配置成2,实际生产应该配置成1或3
-
不配置读写分离
若不配置读写分离,则balance设置为0,并删除readHost节点
-
警告
如果配置多套schema、dataNode、dataHost节点,则应该按照schema写在一起、dataNode写在一起、dataHost写在一起的顺序配置,否则会启动报错
-
启动
进入到/usr/local/mycat/bin文件夹
cd /usr/local/mycat/bin
控制台启动
./mycat console
后台启动
./mycat start
为了方便查看,我们选择控制台启动
-
登录
登录mycat与登录mysql相同,注意端口号,而且需要指定host
后台管理窗口
mysql -umycat -p123456 -P9066 -h127.0.0.1
数据窗口
mysql -umycat -p123456 -P8066 -h127.0.0.1
我们选择数据端口登录,登录后就可以像操作mysql一样操作mycat了
-
参考