AB复制是一种数据复制技术,是myslq数据库提供的一种高可用、高性能的解决方案。

AB复制的模式:
一主一从 、一主多从、双主、多主多从

复制的工作原理:
要想实现ab复制,那么前提是master上必须开启二进制日志
1)首先master将数据更新记录到二进制日志文件中
2)从slave start开始,slave通过I/O线程向master请求二进制日志文件,slave要知道向谁请求从哪个位置点请求
3)master接收到slave的I/O请求之后,就会从相应的位置点开始,给slave传日志
4)slave接收到日志后,会写入本地的中继日志中
5)slave通过sql线程读取中继日志中的内容,在数据库中执行相应的操作,到此为止,master和slave上的数据一致,之后slave服务器进入等待状态,等待master的后续更新

复制工作原理图:

配置说明:

安装配置
1.准备工作
1.关闭防火墙
2.关闭selinux
3.配置固定ip地址
4.配置好yum源
5.修改主机名

2.实验环境
master server:192.168.1.3   master.uplook.com     #主数据库
slave server: 192.168.1.4   slave.uplook.com            #从库

3.配置过程
master配置 (主库所在服务器)
1)安装软件
安装MySQL数据库(没有安装的可以看这个参照 https://www.cnblogs.com/pxblog/p/10529943.html

2)修改主库服务器的配置文件

vim /etc/my.cnf

[mysqld]
log-bin=binlog //开启二进制日志
server-id=1 //指定服务id

3)启动服务

systemctl start mysqld 

4)查看服务是否被监听

 netstat -tulnp | grep 3306

 显示以下内容,说明启动成功(可能参数会有不同)

tcp6       0      0 :::3306                 :::*                    LISTEN      11156/mysqld

  

5)授权一个实现复制数据的用户 (出现问题,具体说明可以查看 https://www.cnblogs.com/pxblog/p/10721939.html

mysql> grant replication slave,replication client on *.* to 'repluser'@'192.168.1.4' identified by '123456';

 

在slave远程登陆 测试授权

mysql -u repluser -h 192.168.1.3 -p123456

  

slave配置(从库所在服务器)
1)安装软件
(一样安装MySQL数据库)

2)修改配置文件

vim /etc/my.cnf  

[mysqld]
server-id=2  //保证和主服务器不一致

3)启动服务

systemctl start mysqld

 

4)查看服务是否被监听

netstat -tulnp | grep 3306

出现以下内容说明成功(可能参数会有不同)

tcp6       0      0 :::3306                 :::*                    LISTEN      11156/mysqld

5)在master(主库所在服务器)上查看,登录MySQL数据库

mysql> show master status\G

 显示以下内容 

*************************** 1. row ***************************
File: binlog.000001
Position: 154
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)

6)从库所在数据库操作,进入从库,在slave上同步数据,需要告诉slave从master的哪个位置开始同步 (以下参数每个人可能不一样)

mysql> change master to master_host='192.168.1.3',
master_port=3306,master_user='repluser',
master_password='123456',
master_log_file='binlog.000001',master_log_pos=154;  

说明:

master_host:数据库服务器ip

master_port:数据库端口

master_user:用户

master_password:密码

master_log_file:值与上面的File的参数对应

master_log_pos:值与上面的Position的值一样

7)在启动从服务器

mysql> start slave;  

Query OK, 0 rows affected (0.00 sec)

8)查看从服务器的状态

mysql> show slave status\G;

Slave_IO_Running: Yes //确保io和sql线程是yes
Slave_SQL_Running: Yes

测试:主从同步是否成功
在master上创建表插入数据
在slave上查看是否有该表
有表示主从同步完成

问题:
1.如果change语句有问题
mysql>slave stop;
change语句问题原因
1)可能多空格
2)关键字不正确
2.同步数据的账户无法连接主服务器
1)账户密码错误
2)无法远程登陆

给所有表加读锁
> flush tables with read lock;
解锁
> unlock tables;

MySQL实现主从库,AB复制配置的更多相关文章

  1. MySQL Replication, 主从和双主配置

    MySQL Replication, 主从和双主配置 MySQL的Replication是一种多个MySQL的数据库做主从同步的方案,特点是异步,广泛用在各种对MySQL有更高性能,更高可靠性要求的场 ...

  2. CentOS 6.4 系统下的MySQL的主从库配置

    首先了解到一. 二一.(MySQL下创建用户并且赋予权限)root用户创建yong用户的SQL语句 CREATE USER 'yong'@'localhost' IDENTIFIED BY 'yong ...

  3. mysql 主从master-slave同步复制 配置,为读写分离准备

    1.为方便,我在一个windows下安装两个mysql实例,端口分别是 3306.3307 打开 my.ini 或 my-default.ini 文件 配置 basedir datadir 和port ...

  4. MySQL数据库主从同步安装与配置总结

    MySQL的主从同步是一个很成熟的架构,优点为: ①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力: ②在从主服务器进行备份,避免备份期间影响主服务器服务: ③当主服务器出现问题时 ...

  5. MySQL 主从复制:基于二进制文件复制配置详解

    MySQL-主从复制:基于二进制文件复制详解 前言 主从复制是指把一个MySQL的数据库服务器作为主服务器(master),然后把master的数据复制到一个或者多个MySQL数据库服务器作为从服务器 ...

  6. mysql学习笔记四 —— AB复制

    要点:ab复制 mysql集群架构流程: ABB(主从复制)-->MHA(实现mysql高可用.读写分离.脚本控制vip飘逸)-->haproxy(对slave集群实现分发,负载均衡)-- ...

  7. Mysql 5.7主主复制配置

    MySQL5.7主主复制配置 主机1IP:192.168.1.2主机2IP:192.168.1.4 一.首先安装MySQL 5.71.卸载两台主机系统中已经有的mysql相关软件包rpm -qa | ...

  8. mysql 8.0 MGR组复制配置

    一.配置组复制的步骤 1.初始化数据目录 2.配置主服务器(primary) 3.配置辅助服务器(secondaries) 4.启动mysql实例 5.安装组复制插件(primary and seco ...

  9. 【MYSQL】主从库查看及搭建

    show slave status 查看从库信息  http://blog.csdn.net/lxpbs8851/article/details/7898716 搭建主从库   http://www. ...

随机推荐

  1. 关于单倍型和Phasing

    单倍型,即单倍体基因型,概念很好理解. 单倍型分型的过程就称之Phasing,定相或基因分型. Phasing的意义,在人类疾病遗传和动植物群体遗传中非常重要.也是imputation的必经过程. v ...

  2. 【6】蛋白质组学鉴定定量软件之MaxQuant

    目录 1.简介 2.下载安装 3.配置与运行 4.结果 5.Perseus后处理 6.小结 1.简介 2016年,德国马普所的Cox和蛋白质组学领域巨擘Matthias Mann合作开发了MaxQua ...

  3. 【模板】二分图最大权完美匹配(KM算法)/洛谷P6577

    题目链接 https://www.luogu.com.cn/problem/P6577 题目大意 给定一个二分图,其左右点的个数各为 \(n\),带权边数为 \(m\),保证存在完美匹配. 求一种完美 ...

  4. Hadoop入门 完全分布式运行模式-准备

    目录 Hadoop运行环境 完全分布式运行模式(重点) scp secure copy 安全拷贝 1 hadoop102上的JDK文件推给103 2 hadoop103从102上拉取Hadoop文件 ...

  5. Vue相关,vue父子组件生命周期执行顺序。

    一.实例代码 父组件: <template> <div id="parent"> <child></child> </div& ...

  6. Output of C++ Program | Set 16

    Predict the output of following C++ programs. Question 1 1 #include<iostream> 2 using namespac ...

  7. OkHttp3 使用

    导入 compile 'com.squareup.okhttp3:okhttp:3.3.0' GET请求 String url = "https://www.baidu.com/" ...

  8. IDE搬进浏览器里——JetBrains Projector

    发展 提起 JetBrains,你会想到什么?各路强大的 IDE,比如 Android Studio.IDEA.WebStorm--这些对于开发者来说耳熟能详的产品都出自这家公司,这些 IDE 的功能 ...

  9. Linux:while read line与for循环的区别

    while read line:是一次性将文件信息读入并赋值给变量line , while中使用重定向机制,文件中的所有信息都被读入并重定向给了整个while 语句中的line 变量. for:是每次 ...

  10. maven高级学习

    上一篇<maven是什么>介绍了最初级的maven学习,今天就趁着周末的大好时光一起学习下maven的高级知识吧. 1.maven工程要导入jar包的坐标,就必须要考虑解决jar冲突 1) ...