郑州网站模板哪里有,烟台市城市建设发展有限公司网站,简单好玩的网页游戏,网站设计怎么做ppt答辩目录
1、概述
2、环境准备
3、读写分离实验
3.1、安装jdk
3.2、安装Mycat
3.3、配置Mycat
3.3.1、配置schema.xml
3.3.2、配置server.xml
3.4、修改主从机远程登陆权限
3.4.1、主机
3.4.2、从机
3.5、启动Mycat
3.6、登录Mycat
3.7、验证 1、概述
读写分…目录
1、概述
2、环境准备
3、读写分离实验
3.1、安装jdk
3.2、安装Mycat
3.3、配置Mycat
3.3.1、配置schema.xml
3.3.2、配置server.xml
3.4、修改主从机远程登陆权限
3.4.1、主机
3.4.2、从机
3.5、启动Mycat
3.6、登录Mycat
3.7、验证 1、概述
读写分离就是把对数据库的读和写操作分开以对应不同的数据库服务器。主数据库提供写操作从数据库提供读操作这样能有效地减轻单台数据库的压力。通过MyCat即可轻易实现上述功能。 【注】Mycat是一个开源数据库中间件是一个实现了MySQL协议的的数据库中间件服务器我们可以把它看作是一个数据库代理用MySQL客户端工具和命令行访问Mycat而Mycat再使用用MySQL原生协议与多个MySQL服务器通信也可以用JDBC协议与大多数主流数据库服务器通信包括SQL Server、Oracle、DB2、PostgreSQL等主流数据库也支持MongoDB这种新型NoSQL方式的存储未来还会支持更多类型的存储。下面为一主一从的图解 2、环境准备 主机阿里云服务器Ubuntu22.04从机本地电脑Win10Mycat1.6从机Win10上java环境jdk1.8数据库Mysql8.0.34 读写分离是基于主从复制的如何搭建主从复制可以看这篇文章数据库进阶教学——主从复制Ubuntu22.04主Win10从-CSDN博客搭建好主从复制环境后在从机中查看主从复制信息显示如下。 3、读写分离实验
3.1、安装jdk
使用mycat是需要java环境的先查看本地电脑上是否安装了java环境。 【注】mycat1.6需要的jdk版本不能太新不然会报错用jdk1.8就行。我这已经安装好了没有安装的可以参考超详细JDK1.8安装与配置_jdk1.8安装教程及环境变量配置-CSDN博客
3.2、安装Mycat
理论上应该将Mycat安装在一个独立的服务器上然后配置Mycat与主库和从库建立连接通过Mycat提供的读写分离配置将读操作分发到从库将写操作分发到主库。这里为了方便直接在本地电脑从库上安装Mycat。Mycat资源Win10安装Mycat_mycat windows-CSDN博客不知道为啥官网打不开。 【注】因为我的本地电脑没有外网所以mycat只能装在我的本地电脑中。如果装在服务器上它将不能访问我的本地电脑。而我的本地电脑是可以访问服务器的。【注】下面是在Win10中安装Mycat。下载压缩包并解压。 配置环境变量 新增环境变量MYCAT_HOME配置mycat的根目录。 新增Path变量。 %MYCAT_HOME%\bin 修改配置文件mycat/conf/wrapper.conf # 添加java路径
wrapper.java.commandD:\App\Java\jdk-1.8\
wrapper.java.command%JAVA_HOME%/bin/java.exe# 修改内存
wrapper.java.additional.10-Xmx4G
wrapper.java.additional.11-Xms1G
改为
wrapper.java.additional.10-Xmx512M
wrapper.java.additional.11-Xms64M
3.3、配置Mycat
3.3.1、配置schema.xml
Mycat控制后台数据库的读写分离和负载均衡由schema.xml文件datahost标签的balance属性控制。balance参数值 0不开启读写分离机制所有读操作都发送到当前可用的writeHost上。1全部的readHost与备用的writeHost都参与select语句的负载均衡主要针对于双主双从模式。2所有的读写操作都随机在writeHostreadHost上分发。3所有的读请求随机分发到writeHost对应的readHost上执行,writeHost不负担读压力。schema.xml位置 选择要实现读写分离的数据库要在文件中修改对应的名字。 ?xml version1.0?
!DOCTYPE mycat:schema SYSTEM schema.dtd
mycat:schema xmlns:mycathttp://io.mycat/schema nameMASTER_RW checkSQLschemafalse sqlMaxLimit100 dataNodedn1/schema!-- dataNode namedn1$0-743 dataHostlocalhost1 databasedb$0-743/ --dataNode namedn1 dataHostlocalhost1 databasedb01 /dataHost namelocalhost1 maxCon1000 minCon10 balance3writeType0 dbTypemysql dbDrivernative switchType1 slaveThreshold100heartbeatselect user()/heartbeat!-- can have multi write hosts --writeHost hostmaster url123.56.xxx.xxx:3306 userroot passwordroot readHost hostslave url127.0.0.1:3306 userroot passwordroot//writeHost/dataHost/mycat:schema 重点关注以下几个参数
3.3.2、配置server.xml
server.xml的位置。 修改逻辑库。 !--以下设置为应用访问帐号权限 --
user nameroot defaultAccounttrueproperty namepasswordroot/property # mycat登录密码property nameschemasMASTER_RW/property
/user
!--以下设置为应用只读帐号权限 --
user nameuserproperty namepassworduser/propertyproperty nameschemasMASTER_RW/propertyproperty namereadOnlytrue/property
/user
3.4、修改主从机远程登陆权限
mycat需要通过权限访问主库和从库。
3.4.1、主机
进入数据库输入命令 update user set host% where user root;
flush privileges; # 刷新权限
3.4.2、从机 进入数据库输入命令 update user set host% where user root;
flush privileges; # 刷新权限
3.5、启动Mycat
以管理员打开终端进入 mycat/bin启动mycat。 mycat.bat start 启动失败 查看日志文件wrapper.log。 解决办法 修改配置文件mycat/conf/wrapper.conf再次启动成功。
3.6、登录Mycat
使用终端登录mycat。 mysql -u root -p -h127.0.0.1 -P8066 登录成功查看其中的数据。
3.7、验证
在mycat的终端插入一条数据。 insert into tb_user(id,name,sex) values(4,master,0); 查看主库的数据已经插入了新数据。 查看从库的数据并没有插入新数据。 说明插入操作是在主库中进行的。【注】这是因为主从复制和读写分离配置的都是3306端口使用了读写分离后主从复制就会失效。只需要用完读写分离后再打开主从复制即可。在mycat中执行查询操作。 查询到的数据与从库一致说明查询操作是在从库中进行的。重新开启主从复制。在从库的数据库中执行下列命令 stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER1;
start slave;
show replica status\G; 查看从库数据已经与主库保持一致。 再次在mycat中执行查询操作。 验证完毕。