MySQL优化(四)——读写分离
1.MySQL高可用
主从复制 一主多备 多主多备
读写分离 减少IO开销,防止阻塞等等
2.主从复制参考
https://www.cnblogs.com/chx9832/p/12342626.html
3.MySQL读写分离------Mycat
1.Mycat暴露给外界访问ip地址,mycat在那一台机器上
2.ip就是对应机器ip,Mycat会虚拟出一个数据库,供外界连接 如:jdbc:mysql://192.168.xx.xx/dbname
3.Mycat会指定权限,让从机只能读,让主机能写能读,一般主机只做写
4.Mycat使用:
4.1 解压mycat,不要放在有中文目录的地方
4.2 修改mycat解压目录下的conf文件夹中server.xml文件,配置账户
<!-- 添加user -->
<user name="mycat_master">
<property name="password">mycat_master</property>
<property name="schemas">mycat</property>
</user>
<!-- 添加user -->
<user name="mycat_slave">
<property name="password">mycat_slave</property>
<property name="schemas">mycat</property>
<property name="readOnly">true</property>
</user>
4.3 配置schema.xml文件
<schema name="mycat" checkSQLschema="true" sqlMaxLimit="100">
<table name="t_users" primaryKey="user_id" dataNode="dn1" rule="rule1"/>
<table name="t_message" type="global" primaryKey="messages_id" dataNode="dn1" />
</schema>
<dataNode name="dn1" dataHost="jdbchost" database="weibo_simple" />
<dataHost name="jdbchost" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1"
slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostMaster" url="192.168.7.11:3306" user="root" password="root">
</writeHost>
<writeHost host="hostSlave" url="192.168.7.22:3306" user="root" password="root"/>
</dataHost>
4.4 配置rule.xml
<tableRule name="rule1">
<rule>
<columns>user_id</columns>
<algorithm>func1</algorithm>
</rule>
</tableRule>
<function name="func1" class="org.opencloudb.route.function.AutoPartitionByLong">
<property name="mapFile">autopartition-long.txt</property>
</function>
4.5 配置启动日志log4j.xml
<level value="debug" />
4.6 启动mycat 端口:8066
启动bin下startup_nowrap.bat
使用sqlyog模拟jdbc连接
新建一个主机的虚拟连接
连接成功后,就出现了配置的俩张表
虚拟主机可以执行读写操作,添加一条数据测试
回到主机查看,写操作成功
从机同样也是会同步这条数据
再新建一个连接,建立一个虚拟从机的连接
尝试修改之前的数据
提示只读
这样也就保证了
从机只能读不能写
做到了读写分离
最新文章
- SSH实战 &#183; 唯唯乐购项目(中)
- plain framework 1 网络流 缓存数据详解
- C#-WinForm-Winform TextBox中只能输入数字的几种常用方法(C#)
- Android:Intel Atom x86模拟器的安装与使用
- android studio SDK版本的调节
- node.js小工具--修改Xcode &#39;Create by&#39;作者名称
- 开发语言大PK:php和Java哪个更好?
- 微软SQLHelper.cs类
- first blood暴力搜索,剪枝是关键
- 学习笔记 broswerify + watchify + beefy
- [Swift]LeetCode213. 打家劫舍 II | House Robber II
- k8s的flannel的pod运行一段时间init error
- socket编程 ------ UDP服务器
- 身份证号校验原理及JavaScript实现
- beginner’s mistake
- ABS PBT POM材质键冒
- 解决Spring Boot中,通过filter打印post请求的 request body 问题
- php curl那点事儿
- 【线段树】【CF1083C】 Max Mex
- Android Service使用简单介绍
热门文章
- 全局对象的构造函数会在main函数之前执行?
- The Top 500 Worst Passwords (2008)
- content-type常见类型辨析(以ajax与springmvc前后端交互为例)
- 构建ROP链实现远程栈溢出
- docker-compose 常用命令整理:
- 利用十字链表存储树结构(便于同时求出某一点的入度与出度)------C语言实现
- mac 经常使用的快捷键操作
- centos7安装node.js
- Oracle中将列查询结果多行逗号拼接成一个大字段
- Python当中的len(),str(),input(),print()函数当中值得注意的点