mycat读写分离

一、架构( M-M-S-S、MyCat )

192.168.40.129 master1
192.168.40.131 master2
192.168.40.155 slave1
192.168.40.128 slave2
192.168.40.200 mycat

MySQL的代理最常见的是mysql-proxy、cobar、mycat、Atlas。Atlas等。mysql-proxy是一个轻量的中间代理。cobar是阿里提供的一个中间件,已经停止更新。mycat的前身就是cobar,活跃度比较高。Atlas奇虎360的一个开源中间代理,是在mysql-proxy 0.8.2的基础上进行了优化,增加一些新的功能特性。360内部使用Atlas运行的MySQL业务,每天承载的读写请求数达几十亿条。

https://www.jianshu.com/p/3869b4ea7642?utm_campaign
https://www.cnblogs.com/lixuebin/p/10808458.html(推荐,mha高可用)
二、配置 Java环境

#tar xf jdk-8u91-linux-x64.tar.gz -C /usr/local/(先下包)

#ln -s /usr/local/jdk1.8.0_91/ /usr/local/java(软连接)

#vim /etc//profile

JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

#tail -3 /etc/profile

JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

source /etc/profile

env |grep JAVA

java      -version(查询到版本。说明jdk安装成功)

三、配置Mycat

下载mycat  :wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

#tar xf  Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz    -C   /usr/local/

#ls /usr/local/mycat/

配置mycat前端

vim  /usr/local/mycat/conf/server.xml

注释掉多余用户

 启动mycat管理员

 配置mycat后端

 vim  /usr/local/mycat/conf/schema.xml

 关于属性的介绍

balance 类型 

1. balance=“0”,  关闭读写分离功能,所有读操作都发送到当前可用的writeHost上。
2. balance=“1”,开启读写分离,所有读操作都随机的发送到readHost。

3. balance=“2”,开启读写分离。所有主机一起参加查询,所有读操作都随机的在writeHost、readhost上分发。

4.balance="3",开启读写分离。仅有读主机参加查询。所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力
writeType

属性备份型:writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties 负载型: writeType="1",所有写操作都随机的发送到配置的 writeHost。

四、配置mysql群

 M-M-S-S 准备Mycat连接的用户及权限

例如master1      授权:grant all on *.* to 'mycatproxy'@'192.168.40.200' identified by 'Zjz@5740';

五、启动Mycat

#/usr/local/mycat/bin/mycat start  启动mycat

Starting Mycat-server...    启动成功,否则就是配置Mycat后端语法错误。

#netstat  -anpt | grep java  监测端口是否启动

#ps aux | grep mycat 检测进程是否启动  (检测不到,很大可能配置文件错误)

#yum install -y mariadb   安装客户端

#mysql    hmycat    -uroot    -pZjz@5740    -P8066

mysql>show databases;

六、Mycat使用后方数据库

mysql>show databases;
+----------+
| DATABASE |
+----------+
| zjz      |
+----------+
1 row in set (0.00 sec)

mysql>use zjz

mysql>mysql> select * from fzy;
+------+
| i    |
+------+
|   23 |
+------+
1 row in set (0.10 sec)

注:1、tail -f /usr/local/mycat/logs/wrapper.log(mycat错误日志)

       2、做了读写分离,从库不能写数据

       3、mycat显示的是数据库集群中的某一个库(而不是集群的名字和所有库),多个库得自己从配置文件中添加。

       4、mycat用来查看后方数据库,别写数据。

七、多库时如何设置mycat

 

 https://blog.51cto.com/lizhenliang/1305083

MySQL-Proxy实现MySQL读写分离提高并发负载

原文地址:https://www.cnblogs.com/zjz20/p/11443997.html