300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 数据库应用——MyCat代理MySQL集群

数据库应用——MyCat代理MySQL集群

时间:2021-11-01 19:22:50

相关推荐

数据库应用——MyCat代理MySQL集群

MyCat代理MySQL集群

一、MyCat代理MySQL集群1.1 MyCat概述1.2 MyCat功能1.3 MyCat图示二、Mycat实战详解2.1 MyCat实战案例2.1.1 配置JAVA环境2.1.2 设置JAVA变量2.1.3 下载并解压MyCat2.2 配置MyCat前端2.2.1 注释多余用户2.2.2 启动MyCat管理员2.3 配置MyCat后端2.4 配置MySQL集群2.5 启动MyCat2.6 安装Mariadb客户端测试2.7 在主服务器上创库创表2.8 测试检查2.8.1 在MyCat上查看数据2.8.2 在主服务器上查看数据三、总结一下3.1 关于MyCat后端配置文件的总结3.2 关于企业数据库服务器过多,如何进行设置?

一、MyCat代理MySQL集群

1.1 MyCat概述

从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。名词:DB Proxy 数据库中间件

1.2 MyCat功能

读写分离 M-S-S M-M-S-S负载均衡 Galera Cluster支持数据的分片自动路由与聚合

1.3 MyCat图示

二、Mycat实战详解

本实验基于MySQL集群做铺垫双主双从架构

如未搭建,请参考 MySQL集群搭建

#使用Xshell的发送键到所有会话功能[root@mycat ~]# vim /etc/hosts192.168.100.254 192.168.100.253 192.168.100.252 192.168.100.251 192.168.100.250 mycat

2.1 MyCat实战案例

2.1.1 配置JAVA环境

因为Mycat是使用java编写的

[root@mycat ~]# tar -xvzf jdk-8u65-linux-x64.tar.gz -C /usr/local/ #加压java软件开发工具包[root@mycat ~]# ln -s /usr/local/jdk1.8.0_65/ /usr/local/java#创建软链接使其简洁

2.1.2 设置JAVA变量

[root@mycat ~]# vim /etc/profile...#文件最后添加三行JAVA_HOME=/usr/local/javaPATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH #设置JAVA变量,便于JAVA调用[root@mycat ~]# source /etc/profile #让系统读取省去重启时间[root@mycat ~]# echo $JAVA_HOME #检查是否赋予变量/usr/local/java[root@mycat ~]# java -version #查看JAVA版本信息同时验证变量

2.1.3 下载并解压MyCat

官方站点:.cn/

[root@mycat ~]# tar -xvzf Mycat-server-1.6-RELEASE-1028204710-linux.tar.gz -C /usr/local/

2.2 配置MyCat前端

2.2.1 注释多余用户

[root@mycat ~]# vim /usr/local/mycat/conf/server.xml<!--<user name="user"><property name="password">user</property><property name="schemas">TESTDB</property><property name="readOnly">true</property></user>--> #user账户是默认账户,通过<!-- -->注释

2.2.2 启动MyCat管理员

<user name="root">#name="root"连接mycat数据库的账户<property name="password">123456</property> #password 123456 连接mycat数据库的密码<property name="schemas">tianyun</property> #schemas:tianyun 后方数据库群的统称

2.3 配置MyCat后端

[root@mycat ~]# cp /usr/local/mycat/conf/schema.xml . #备份文件

schema:架构

[root@mycat ~]# vim /usr/local/mycat/conf/schema.xml #文中省略部分与本实验无关的内容<?xml version="1.0"?> #版本<!DOCTYPE mycat:schema SYSTEM "schema.dtd"> #文档声明<mycat:schema xmlns:mycat="http://io.mycat/">#官方地址声明# 架构名称 tianyun(虚拟) ↓ 关闭库校验 ↓ 每分钟支持最大100次 <schema name="tianyun" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema> #dataNode :数据节点 定义节点为dn1<!-- 中间部分删除 ovo --><dataNode name="dn1" dataHost="localhost1" database="tianyun" /> #与前方tianyun数据节点关联<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" #表示具体的集群位置 maxcon最大链接 balance 均衡 详解如下注释writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">#writeType:写类型详解如下注释 dbType:数据库类型 dbDriver:数据库驱动程序 switchType:交换类型解释如下 slaveThreshole:延迟时间 100毫秒 解释如下<heartbeat>select user()</heartbeat> #健康状态检查<writeHost host="" url=":3306" user="mycatproxy" password="Pakho@0611">#writeHost:写主机 路径为 使用mycatproxy账户登陆面对后端等下进行授权<readHost host="" url=":3306" user="mycatproxy" password="Pakho@0611" /> #写入从服务器地址<readHost host="" url=":3306" user="mycatproxy" password="Pakho@0611" /></writeHost><writeHost host="" url=":3306" user="mycatproxy" password="Pakho@0611"><readHost host="" url=":3306" user="mycatproxy" password="Pakho@0611" /> #写入从服务器地址<readHost host="" url=":3306" user="mycatproxy" password="Pakho@0611" /></writeHost></dataHost></mycat:schema>

★ 文件中某些属性的具体解释 ★

#balance类型balance:0 关闭读写分离,所有读操作都随机的发送到readHostbalance:1 开启读写分离,所有操作都随机发送到readHost#writeType类型备份型:1、writeType=0 所有写操作发送到配置的第一个writeHost第一个挂了切换到还生存的第二个writeHost重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties负载型:2、writeType=1 所有写操作都随机的发送到配置的writeHost#switchType模式switchType:指的是切换的模式,目前的取值也有四种switchType=-1 负一表示不自动切换switchType=1 默认值,表示根据延时自动切换switchType=2 根据MySQL主从同步的状态决定是否切换,心跳语句为show slave status#slaveThreshole主从的延迟在多少秒以内,则把读请求分发到这个从节点,否则不往这个节点分发假设生产环境能容忍的主从延迟为60秒,则设置此值为60,此例中设置值为100

2.4 配置MySQL集群

M-M-S-S 基于双主双从数据库集群架构

[root@mysql0 ~]# mysql -uroot -p'Pakho@611'mysql> grant all on *.* to 'mycatproxy'@'mycat' identified by 'Pakho@0611'; #为mycat服务器mysql> flush privileges;

2.5 启动MyCat

mycat 192.168.100.250

[root@mycat ~]# /usr/local/mycat/bin/mycat startStarting Mycat-server...[root@mycat ~]# netstat -anpt | grep java#查看端口并过滤JAVA端口

[root@mycat ~]# cat /usr/local/mycat/logs/* #如有报错可以查看mycat日志

2.6 安装Mariadb客户端测试

[root@mycat ~]# ps aux | grep mycat[root@mycat ~]# yum -y install mariadb#为了验证数据库集群可用性也尽量节省资源在本机安装客户端测试

2.7 在主服务器上创库创表

mysql0 192.168.100.254

[root@mysql0 ~]# mysql -uroot -p'Pakho@611'mysql> create database tianyun;mysql> create table tianyun.t1 (id int);mysql> insert into tianyun.t1 values (1);mysql> flush privileges;

2.8 测试检查

2.8.1 在MyCat上查看数据

[root@mycat ~]# mysql -hmycat -uroot -p123456 -P8066MySQL [(none)]> show databases;MySQL [(none)]> use tianyun;MySQL [tianyun]> select * from tianyun.t1;

MySQL [tianyun]> insert into tianyun.t1 values (2); #在Mycat服务器插入数据在主服务器查看

2.8.2 在主服务器上查看数据

mysql0 :192.168.100.254

mysql> select * from tianyun.t1 ;

在MySQL集群能够查询到数据,实验完成!

三、总结一下

3.1 关于MyCat后端配置文件的总结

此内容及上述实验仅限于双主双从架构

如下图为刚才后端配置文件总结

3.2 关于企业数据库服务器过多,如何进行设置?

用户名的设置

Mycat后端配置文件的设置

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。