mycat读写分离\Mha高可用
一、架构( 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业务,每天承载的读写请求数达几十亿条。
#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读写分离提高并发负载
数据库架构之【MySQL8+MyCat2+Keepalived】RDBMS 读写分离和分库分表集群方案
https://www.jianshu.com/p/594c27f60200 有待学习