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)主从复制和读写分离相关推荐

  1. MySQL的主从复制与读写分离技术实例(一)主从复制

    系统版本:CentOS 6.5   MySQL版本:mysql-5.5.38 生产环境下,如果对同一个数据库服务器即做写服务又做读服务,无论是从安全性.高可用性还是高并发等各个角度都不能满足实际需求, ...

  2. 【MySql】mysql之主从复制和读写分离搭建

    [MySql]mysql之主从复制和读写分离搭建 文章目录 [MySql]mysql之主从复制和读写分离搭建 1主从复制 1.1MySql支持从复制类型 1.2主从复制的原理 1.3主从复制的工作过程 ...

  3. MySQL数据库主从复制与读写分离(图文详解!)

    目录 前言 一:MySQL数据库主从复制与读写分离 1.什么是读写分离? 2.为什么要读写分离呢? 3.什么时候要读写分离? 4.主从复制与读写分离 5.mysql支持的复制类型 (1)STATEME ...

  4. MySQL的主从复制、读写分离(amoeba)

    目录 一.MySQL主从复制 1.1 MySQL复制的类型 1.2 工作原理 1.3 mysql的四种同步的方式 二.MySQL的读写分离 2.1 什么是读写分离 2.2 读写分离的好处 2.3 常见 ...

  5. MySQL(9)主从复制与读写分离

    文章目录 一.MySQL主从复制与读写分离 1.1 主从分离和读写分离的相关概述 1)主从复制与读写分离. 2)为什么要读写分离 3)什么时候要读写分离 4)读写分离的原理 5)mysql支持的复制类 ...

  6. 配置Mysql实现主从复制与读写分离

    环境说明 主从复制使用mysql自带的master与slave机制:读写分离使用mysql-proxy实现! 有服务器三台:s1,s2,s3. s1为web服务器,装有httpd,php,mysql, ...

  7. centos mysql无法启动 sock_【零基础学云计算】MYSQL的主从复制、读写分离

    MySQL主从复制的类型 基于语句的复制(默认) 在主服务器上执行的语句,从服务器执行同样的语句 基于行的复制 把改变的内容复制到从服务器 混合类型的复制 一旦发现基于语句无法精确复制时,就会采用基于 ...

  8. atlas mysql 数据库同步_atlas+mysql实现主从复制和读写分离(二)

    1. 安装必要的依赖包yum install pkg-config libevent* glib lua 2. 升级安装autoconf,编译安装automake需要wget ftp://ftp.gn ...

  9. MySQL+Amoeba实现数据库主从复制和读写分离

    MySQL读写分离是在主从复制的基础上进一步通过在master上执行写操作,在slave上执行读操作来实现的.通过主从复制,master上的数据改动能够同步到slave上,从而保持了数据的一致性.实现 ...

  10. mysql主从复制、读写分离到数据库水平拆分及库表散列

    文章转载自http://blog.csdn.net/sd4422739/article/details/49514981 web项目最原始的情况是一台服务器只能连接一个mysql服务器(c3p0只能配 ...

最新文章

  1. 关于python和anaconda的一些基础认识
  2. 20210712未来智能实验室收录资料
  3. LOJ#2302 整数
  4. 逻辑错误有哪些c语言,c语言程序,现在出现逻辑错误,哪位高手指点下啊。。。...
  5. 万达与IBM联手发力公有云市场,为不让马云当首富王健林也是拼了
  6. RESTful架构与RPC架构
  7. python一个星期可以入门吗_Python一星期入门第6篇: 模块和包
  8. 一些值得借鉴的处事、励志语句
  9. IS-IS详解(十)——IS-IS 骨干区域与非骨干区域访问进阶
  10. Unity 粒子特效相对位置和大小的调整
  11. js批量删除微博教程
  12. 关于信贷评分卡模型,看这篇就够了!
  13. R查看和更改工作路径的命令
  14. RGB与HSB之间的转换公式
  15. YOLOv5中的CSP结构
  16. 根据手机的分辨率和屏幕尺寸计算手机屏幕的PPI
  17. WPF 绑定继承的样式提示 只能根据带有基类型 IFrameworkInputElement 的目标类型的 Style 样式
  18. Memcached的安装及配置
  19. 微积分的实质?袁萌评知乎的谬论
  20. LabVIEW编程LabVIEW开发 研华PCIE-1751更改DIO方向 例程与相关资料

热门文章

  1. Excel VBA Sql 操作Access数据库
  2. 乐高ev3搭建图_乐高EV3机械爪合集
  3. oracle11管理员连接数据库,1.运行 cmd.exe;2.输入 sqlplus / as sysdba,以系统管理员(sysdba)身份连接数据库,进行数据库管理操作。3.连接成功后执...
  4. C语言 函数缺省参数 - C语言零基础入门教程
  5. java定义变量的输入_Terraform中输入变量
  6. php阿拉伯语字符串,按字母顺序命名阿拉伯语名称Mysql和php
  7. tcp中的crc检验算法原理_在数据传输过程中的CRC 算法的简单说明
  8. construct2 ajax,Construct2/3
  9. html5 电流效果,在HTML5 Canvas 2D上绘制云雾中的电流动画特效
  10. flyway配置mysql_Flyway快速上手教程