MySQL(9)主从复制和读写分离
1.理解MySQL主从复制原理。
复制是MySQL提供的一直高可用、高性能的解决方案,一般用来建立大型的应用,总体来说,分为以下三步:
(1)master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
(2)slave将master的binary log events拷贝到它的中继日志(relay log);
(3)slave重做中继日志中的事件,将改变反映它自己的数据。
2.完成MySQL主从复制。
=============================================================
1.在主服务器(master)上
启用二进制日志
选择一个唯一的server-id
创建具有复制权限的用户
2.在从服务器(slave)上
启用中继日志(二进制日志可开启,也可不开启)
选择一个唯一的server-id
连接至主服务器,并开始复制
==============================================================
1)设置server-id值并开启binlog参数
[mysqld]
log-bin = mysql-bin
server_id = 1
停止数据库# systemctl stop mysqld
启动数据库#systemctl start mysqld
show variables like '%log_bin%';
可见log-bin 开
2)建立同步账号
mysql> grant replication slave on *.* to rep@'192.168.95.%' identified by'123456';
mysql> show grants for rep@'192.168.95.%';
3)锁表设置只读
为后面备份准备,注意生产环境要提前申请停机时间;
mysql> flush tables with read lock;
提示:如果超过设置时间不操作会自动解锁。
mysql> show variables like'%timeout%';
测试锁表后是否可以创建数据库:
4)查看主库状态
查看主库状态,即当前日志文件名和二进制日志偏移量
mysql> show master status;
5)备份数据库数据
# mysqldump -uroot -p -A -B |gzip > /backup/mysql/mysql_bak.$(date +%F).sql.gz
6)解锁
mysql> unlock tables;
7)主库备份数据上传到从库
scp mysql_bak.2021-01-26.sql.gz 192.168.83.134:/tmp
从库上设置
1)设置server-id值并关闭binlog参数
停止数据库# systemctl stop mysqld
启动数据库#systemctl start mysqld
2)还原从主库备份数据
# cd /server/backup/
# gzip -d mysql_bak.2015-11-18.sql.gz
# mysql -uroot -p < mysql_bak.2015-11-18.
sql检查还原:
# mysql -uroot -p -e 'show databases;'
3)设定从主库同步
4)启动从库同步开关
mysql> start slave;
检查状态:show slave status\G
3.完成MySQL读写分离配置
Mycat实现MySQL主从复制读写分离
MyCAT的安装及部署
链接:https://pan.baidu.com/s/16Z7NFKuL2WX8b1ZKpk9AwA
提取码:yang
1>、部署jdk环境MyCAT用Java开发,需要有JAVA运行环境,mycat依赖jdk1.7的环境
rpm -ivh jdk-8u144-linux-x64.rpm
测试 : java -version
2>、安装Mycat
链接:https://pan.baidu.com/s/1bkDv1WkwXXr2YzBtvCRY8w
提取码:yang
tar xf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
3)添加环境变量
export PATH=$PATH:/usr/local/mycat/bin
[root@localhost mycat]# source /etc/profile.d/mycat.sh (当前生效)
3>、读写分离配置
1)不使用Mycat托管MySQL主从服务器,简单使用如下配置
#注意:配置前备份下配置文件
先做一个备份吧
打开
vim schema.xml
(1)<schema name="TESTDB"checkSQLschema="false"sqlMaxLimit="100"dataNode="dn1">
这里的TESTDB就是我们所宣称的数据库名称,必须和server.xml中的用户指定的数据库名称一致。添加一个dataNode="dn1",是指定了我们这个库只有在dn1上,没有分库。
(2)<dataNode name="dn1"dataHost="localhost1"database="db1" />
这里只需要改database的名字,就是你真是的数据库上的数据库名,可根据自己的数据库名称修改。
(3) <dataHostname="localhost1"maxCon="1000"minCon="10"balance="1"writeType="0"dbType="mysql"dbDriver="native"switchType="1"slaveThreshold="100">
balance
1、balance=0不开启读写分离机制,所有读操作都发送到当前可用的writehostle
.2、balance=1全部的readhost与stand by writeHost 参与select语句的负载均衡。简单的说,双主双从模式(M1->S1,M2->S2,并且M1和M2互为主备),正常情况下,M1,S1,S2都参与select语句的复杂均衡。
3、balance=2所有读操作都随机的在readhost和writehost上分发
writeType负载均衡类型,目前的取值有3种:
1、writeType="0", 所有写操作发送到配置的第一个writeHost。
2、writeType="1",所有写操作都随机的发送到配置的writeHost。
3、writeType="2",不执行写操作。
switchType
1、switchType=-1表示不自动切换
2、switchType=1默认值,自动切换
3、switchType=2基于MySQL 主从同步的状态决定是否切换
datahost其他配置
<dataHost name="localhost1"maxCon="1000"minCon="10"balance="1"writeType="0"dbType="mysql"dbDriver="native"switchType="1">
maxCon="1000":最大的并发连接数
minCon="10":mycat在启动之后,会在后端节点上自动开启的连接线程
tempReadHostAvailable="1"
这个一主一从时(1个writehost,1个readhost时),可以开启这个参数,如果2个writehost,2个readhost时
<heartbeat>select user()</heartbeat> 监测心跳
(4)写与读
4>、创建管理用户
grant insert,delete,update,select on db1.* to mycat@'192.168.83.%' identified by '123456';
收回权限
revoke INSERT, UPDATE, DELETE ON school.* from 'mycat'@'192.168.83.%';
配置基本完成
MySQL(9)主从复制和读写分离相关推荐
- MySQL的主从复制与读写分离技术实例(一)主从复制
系统版本:CentOS 6.5 MySQL版本:mysql-5.5.38 生产环境下,如果对同一个数据库服务器即做写服务又做读服务,无论是从安全性.高可用性还是高并发等各个角度都不能满足实际需求, ...
- 【MySql】mysql之主从复制和读写分离搭建
[MySql]mysql之主从复制和读写分离搭建 文章目录 [MySql]mysql之主从复制和读写分离搭建 1主从复制 1.1MySql支持从复制类型 1.2主从复制的原理 1.3主从复制的工作过程 ...
- MySQL数据库主从复制与读写分离(图文详解!)
目录 前言 一:MySQL数据库主从复制与读写分离 1.什么是读写分离? 2.为什么要读写分离呢? 3.什么时候要读写分离? 4.主从复制与读写分离 5.mysql支持的复制类型 (1)STATEME ...
- MySQL的主从复制、读写分离(amoeba)
目录 一.MySQL主从复制 1.1 MySQL复制的类型 1.2 工作原理 1.3 mysql的四种同步的方式 二.MySQL的读写分离 2.1 什么是读写分离 2.2 读写分离的好处 2.3 常见 ...
- MySQL(9)主从复制与读写分离
文章目录 一.MySQL主从复制与读写分离 1.1 主从分离和读写分离的相关概述 1)主从复制与读写分离. 2)为什么要读写分离 3)什么时候要读写分离 4)读写分离的原理 5)mysql支持的复制类 ...
- 配置Mysql实现主从复制与读写分离
环境说明 主从复制使用mysql自带的master与slave机制:读写分离使用mysql-proxy实现! 有服务器三台:s1,s2,s3. s1为web服务器,装有httpd,php,mysql, ...
- centos mysql无法启动 sock_【零基础学云计算】MYSQL的主从复制、读写分离
MySQL主从复制的类型 基于语句的复制(默认) 在主服务器上执行的语句,从服务器执行同样的语句 基于行的复制 把改变的内容复制到从服务器 混合类型的复制 一旦发现基于语句无法精确复制时,就会采用基于 ...
- atlas mysql 数据库同步_atlas+mysql实现主从复制和读写分离(二)
1. 安装必要的依赖包yum install pkg-config libevent* glib lua 2. 升级安装autoconf,编译安装automake需要wget ftp://ftp.gn ...
- MySQL+Amoeba实现数据库主从复制和读写分离
MySQL读写分离是在主从复制的基础上进一步通过在master上执行写操作,在slave上执行读操作来实现的.通过主从复制,master上的数据改动能够同步到slave上,从而保持了数据的一致性.实现 ...
- mysql主从复制、读写分离到数据库水平拆分及库表散列
文章转载自http://blog.csdn.net/sd4422739/article/details/49514981 web项目最原始的情况是一台服务器只能连接一个mysql服务器(c3p0只能配 ...
最新文章
- 关于python和anaconda的一些基础认识
- 20210712未来智能实验室收录资料
- LOJ#2302 整数
- 逻辑错误有哪些c语言,c语言程序,现在出现逻辑错误,哪位高手指点下啊。。。...
- 万达与IBM联手发力公有云市场,为不让马云当首富王健林也是拼了
- RESTful架构与RPC架构
- python一个星期可以入门吗_Python一星期入门第6篇: 模块和包
- 一些值得借鉴的处事、励志语句
- IS-IS详解(十)——IS-IS 骨干区域与非骨干区域访问进阶
- Unity 粒子特效相对位置和大小的调整
- js批量删除微博教程
- 关于信贷评分卡模型,看这篇就够了!
- R查看和更改工作路径的命令
- RGB与HSB之间的转换公式
- YOLOv5中的CSP结构
- 根据手机的分辨率和屏幕尺寸计算手机屏幕的PPI
- WPF 绑定继承的样式提示 只能根据带有基类型 IFrameworkInputElement 的目标类型的 Style 样式
- Memcached的安装及配置
- 微积分的实质?袁萌评知乎的谬论
- LabVIEW编程LabVIEW开发 研华PCIE-1751更改DIO方向 例程与相关资料
热门文章
- Excel VBA Sql 操作Access数据库
- 乐高ev3搭建图_乐高EV3机械爪合集
- oracle11管理员连接数据库,1.运行 cmd.exe;2.输入 sqlplus / as sysdba,以系统管理员(sysdba)身份连接数据库,进行数据库管理操作。3.连接成功后执...
- C语言 函数缺省参数 - C语言零基础入门教程
- java定义变量的输入_Terraform中输入变量
- php阿拉伯语字符串,按字母顺序命名阿拉伯语名称Mysql和php
- tcp中的crc检验算法原理_在数据传输过程中的CRC 算法的简单说明
- construct2 ajax,Construct2/3
- html5 电流效果,在HTML5 Canvas 2D上绘制云雾中的电流动画特效
- flyway配置mysql_Flyway快速上手教程