1、实验环境
基于上一个实验环境 《MySQL双主双从》
上一个实验的博文链接:https://www.jianshu.com/writer#/notebooks/44959834/notes/68556338
在上一个实验环境基础上,再增加一台CentOS-7.5的虚机作为Mycat服务器
Mycat:192.168.18.110
2、安装Mycat
说明:安装Mycat分三步
Mycat依赖于Java环境,并且依赖于MySQL环境
1)安装配置Java环境
先上传提前准备好的jdk文件到Linux
[root@CentOS-5 ~]#
[root@CentOS-5 ~]# ls
[root@CentOS-5 ~]# tar -zxf jdk-8u161-linux-x64.tar.gz -C /usr/local/
[root@CentOS-5 ~]# ls /usr/local/ | grep jdk
jdk1.8.0_161
[root@CentOS-5 ~]#
[root@CentOS-5 ~]#
[root@CentOS-5 ~]# vim /etc/profile
# 在配置文件最末尾加入以下四行即可
export JAVA_HOME=/usr/local/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
[root@CentOS-5 ~]#
[root@CentOS-5 ~]# tail -4 /etc/profile
[root@CentOS-5 ~]# source /etc/profile
[root@CentOS-5 ~]#
[root@CentOS-5 ~]# java -version
2)安装MySQL
安装MySQL步骤我就不写了,我前面好多博文都有安装MySQL的详细步骤,可以去本人以前的博文中参考
Mycat服务器上安装的MySQL不需要修改配置文件,只要初始化了就行
3)安装Mycat
先将提前准备好的Mycat安装包上传到Linux
[root@CentOS-5 ~]#
[root@CentOS-5 ~]# ls /root/M*
[root@CentOS-5 ~]# tar -zxf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
[root@CentOS-5 ~]#
[root@CentOS-5 ~]# ls /usr/local/ | grep mycat
mycat
[root@CentOS-5 ~]#
[root@CentOS-5 ~]#
[root@CentOS-5 ~]# ll /usr/local/mycat/
3、配置Mycat
[root@CentOS-5 ~]#
[root@CentOS-5 ~]# cd /usr/local/mycat/conf/
1)先配置修改 server.xml
提示:只需要修改下面截图红框中的信息
[root@CentOS-5 conf]#
[root@CentOS-5 conf]# vim server.xml
<user name="mycat">
<property name="password">Mycat.2020</property>
<property name="schemas">TESTDB</property>
<!-- 表级 DML 权限设置 -->
<!--
<privileges check="false">
<schema name="TESTDB" dml="0110" >
<table name="tb01" dml="0000"></table>
<table name="tb02" dml="1111"></table>
</schema>
</privileges>
-->
</user>
2)接着修改 schema.xml
由于schema.xml 配置模块中很多注释影响配置使用,所以我们需要先将这些用不到的注释信息全部删除,简化配置文件
[root@CentOS-5 conf]#
[root@CentOS-5 conf]# vim schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1" >
</schema>
<dataNode name="dn1" dataHost="host1" database="testdb" />
<dataHost name="host1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="192.168.18.103:3306" user="root"
password="Ctsi.2020">
<!-- can have multi read hosts -->
<readHost host="hostS1" url="192.168.18.107:3306" user="root" password="Ctsi.2020" />
</writeHost>
<writeHost host="hostM2" url="192.168.18.104:3306" user="root"
password="Ctsi.2020">
<!-- can have multi read hosts -->
<readHost host="hostS2" url="192.168.18.108:3306" user="root" password="Ctsi.2020" />
</writeHost>
</dataHost>
</mycat:schema>
4、启动Mycat
[root@CentOS-5 ~]#
[root@CentOS-5 ~]# cd /usr/local/mycat/bin/ #进入bin目录
[root@CentOS-5 bin]# ./mycat console #启动mycat进程
[root@CentOS-5 bin]# ./mycat start #也可以用这个命令启动mycat
[root@CentOS-5 bin]#
[root@CentOS-5 bin]# ./mycat status
5、使用Navicat工具远程登录mycat
6、授权 mycat 可以访问MySQL真实服务器的TESTDB库
[root@CentOS ~]#
mysql>
mysql> grant all on TESTDB.* to root@192.168.18.110 identified by 'Ctsi.2020;
mysql> flush privileges;
[root@CentOS ~]#
7、在M1端创建testdb库
[root@CentOS ~]#
mysql>
mysql> create database testdb;
Query OK, 1 row affected (0.11 sec)
mysql>
mysql> show databases;
8、使用Mycat通过root用户远程连接4个数据库
前提:4台数据库服务器一定要设置允许root用户远程连接才行
root@CentOS-5 ~]#
[root@CentOS-5 ~]# mysql -uroot -p'Ctsi.2020' -h 192.168.18.103 -P 3306
8、验证双主双从复制架构基于Mycat的读写分离功能
步骤略……