Mysql主从复制、读写分离+MyCat数据库中间件

时间:2022-06-05 04:12:44

最近搭建了 MySQL 主从 并使用MyCat作为数据库中间件

版本:

Mysql  5.5.48

Linux :CentOS 6.8

MyCat : 1.4


节点:

192.168.152.11Cluster1

192.168.152.12Cluster2

192.168.152.13Cluster3


首先 在三台节点上都安装mysql (如何安装 自行百度)

授权登陆:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'root' WITH GRANT OPTION;

三台节点都授权远程登陆


三个节点都创建数据库 database1 、database2

----------------------------------------

配置MySQL主服务器的my.cnf文件

vim /etc/my.cnf

在[mysqld]下面加入如下内容

binlog-do-db=database1
binlog-do-db=database2
binlog-ignore-db=mysql
并且 开启binlog日志

log-bin=mysql-bin
以及Server-id 

server-id       = 1

如图:

Mysql主从复制、读写分离+MyCat数据库中间件

主服务器配置OK

service mysql restart
重启服务

进入Mysql命令行

show master status\G
得到:

Mysql主从复制、读写分离+MyCat数据库中间件


记住这里的:

     File: mysql-bin.000028        Position: 22285
一会要用到

配置MySQL从服务器的my.cnf文件

replicate-do-db=database1
replicate-do-db=database2
replicate-ignore-db=mysql

Mysql主从复制、读写分离+MyCat数据库中间件

以及修改serverid

server-id       = 2

另一台从服务器同理 ServerId 为3 

重启Mysql服务

注意:MySQL 5.1.7版本之后,已经不支持把master配置属性写入my.cnf配置文件中了,只需要把同步的数据库和要忽略的数据库写入即可。


Mysql命令行 进入Mysql 在 Cluster2、Cluster3上执行

slave stop;   #停止slave同步进程
然后执行:

change master to master_host='192.168.152.11',master_user='root',master_password='root',master_log_file='mysql-bin.000028' ,master_log_pos=22285;
注意这里的 

master_log_file='mysql-bin.000028' ,master_log_pos=22285;

一定要对应

配置Ok后执行:

slave start;    #开启slave同步进程
开启Slave

在执行:

SHOW SLAVE STATUS\G   #查看slave同步信息,出现以下内容
Mysql主从复制、读写分离+MyCat数据库中间件

注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上这两个参数的值为Yes,即说明配置成功!


OK主从复制搭建成功


接下来 安装Mycat1.4 下载地址:http://www.mycat.org.cn/  点击这里直接下载

解压Mycat

得到:

Mysql主从复制、读写分离+MyCat数据库中间件

接下来进行配置读写分离

首先 :

vim wrapper.conf 
配置Java路径

Mysql主从复制、读写分离+MyCat数据库中间件

然后 编辑

vim schema.xml
修改内容如下:

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">

<schema name="database1" checkSQLschema="false" sqlMaxLimit="100" dataNode="database1"></schema>

<dataNode name="database1" dataHost="localhost1" database="database1" />

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="cluster1" url="192.168.152.11:3306" user="root" password="root">
<readHost host="cluster2" url="192.168.152.12:3306" user="root" password="root" />
<readHost host="cluster3" url="192.168.152.13:3306" user="root" password="root" />
</writeHost>
</dataHost>
</mycat:schema>
简单说明一下:

Mysql主从复制、读写分离+MyCat数据库中间件

编辑账户
vim server.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://org.opencloudb/">
<system>
<!--
<property name="mutiNodeLimitType">1</property> 0:开启小数量级(默认) ;1:开启亿级数据排序
<property name="mutiNodePatchSize">100</property> 亿级数量排序批量
<property name="processors">32</property> <property name="processorExecutor">32</property>
<property name="serverPort">8066</property> <property name="managerPort">9066</property>
<property name="idleTimeout">300000</property> <property name="bindIp">0.0.0.0</property>
<property name="frontWriteQueueSize">4096</property> <property name="processors">32</property> -->
</system>

<user name="admin">
<property name="password">admin</property>
<property name="schemas">database1</property>
</user>
</mycat:server>
这里的 的schemas 一定要和前面的 对应
Mysql主从复制、读写分离+MyCat数据库中间件


配置OK

bin/mycat start

启动Mycat

连接MyCat

mysql -h127.0.0.1 -uadmin -padmin -P8066
Mysql主从复制、读写分离+MyCat数据库中间件
Mysql主从复制、读写分离+MyCat数据库中间件

Ok 配置结束


Mysql 主从复制 + MyCat读写分离 配置就OK了

Mysql主从复制、读写分离+MyCat数据库中间件