MySQL实现主从库,AB复制配置
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复制配置的更多相关文章
- MySQL Replication, 主从和双主配置
MySQL Replication, 主从和双主配置 MySQL的Replication是一种多个MySQL的数据库做主从同步的方案,特点是异步,广泛用在各种对MySQL有更高性能,更高可靠性要求的场 ...
- CentOS 6.4 系统下的MySQL的主从库配置
首先了解到一. 二一.(MySQL下创建用户并且赋予权限)root用户创建yong用户的SQL语句 CREATE USER 'yong'@'localhost' IDENTIFIED BY 'yong ...
- mysql 主从master-slave同步复制 配置,为读写分离准备
1.为方便,我在一个windows下安装两个mysql实例,端口分别是 3306.3307 打开 my.ini 或 my-default.ini 文件 配置 basedir datadir 和port ...
- MySQL数据库主从同步安装与配置总结
MySQL的主从同步是一个很成熟的架构,优点为: ①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力: ②在从主服务器进行备份,避免备份期间影响主服务器服务: ③当主服务器出现问题时 ...
- MySQL 主从复制:基于二进制文件复制配置详解
MySQL-主从复制:基于二进制文件复制详解 前言 主从复制是指把一个MySQL的数据库服务器作为主服务器(master),然后把master的数据复制到一个或者多个MySQL数据库服务器作为从服务器 ...
- mysql学习笔记四 —— AB复制
要点:ab复制 mysql集群架构流程: ABB(主从复制)-->MHA(实现mysql高可用.读写分离.脚本控制vip飘逸)-->haproxy(对slave集群实现分发,负载均衡)-- ...
- Mysql 5.7主主复制配置
MySQL5.7主主复制配置 主机1IP:192.168.1.2主机2IP:192.168.1.4 一.首先安装MySQL 5.71.卸载两台主机系统中已经有的mysql相关软件包rpm -qa | ...
- mysql 8.0 MGR组复制配置
一.配置组复制的步骤 1.初始化数据目录 2.配置主服务器(primary) 3.配置辅助服务器(secondaries) 4.启动mysql实例 5.安装组复制插件(primary and seco ...
- 【MYSQL】主从库查看及搭建
show slave status 查看从库信息 http://blog.csdn.net/lxpbs8851/article/details/7898716 搭建主从库 http://www. ...
随机推荐
- Codeforces 348C - Subset Sums(根号分治)
题面传送门 对于这类不好直接维护的数据结构,第一眼应该想到-- 根号分治! 我们考虑记[大集合]为大小 \(\geq\sqrt{n}\) 的集合,[小集合]为大小 \(<\sqrt{n}\) 的 ...
- perl 数组快速去除重复元素
这里记录两种perl数组去重的办法,一种利用哈希(hash),一种直接利用perl自带的模块List::MoreUtils内部的函数uniq. 一.利用hash去重 示例代码如下: 1 #!/usr/ ...
- Linux—su命令和su -命令的差别(切换登录账号)
1.普通用户切换到root用户,命令su或su - 本人以前一直习惯直接使用root,很少使用su,前几天才发现su与su -命令是有着本质区别的! 大部分Linux发行版的默认账户是普通用户,而更改 ...
- Django创建多对多表关系的三种方式
方式一:全自动(不推荐) 优点:django orm会自动创建第三张表 缺点:只会创建两个表的关系字段,不会再额外添加字段,可扩展性差 class Book(models.Model): # ... ...
- 变量、内存区域、MDK文件(map、htm)
变量分为:局部变量和全局变量 局部变量:函数体内部定义的变量,作用域为函数内部,static声明(静态局部变量)该变量则函数调用结束后不消失而保留值,分配的存储空间不释放. 全局变量:函数体外部定义的 ...
- Hi3516开发笔记(六):通过HiTools使用USB/串口将uboot、kernel、roofts和userdata按照分区表烧写镜像
若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121706033红胖子(红模仿)的博文大全:开发技术集合( ...
- 巩固javaweb第八天
巩固内容: HTML 段落 HTML 可以将文档分割为若干段落. HTML 段落 段落是通过 <p> 标签定义的. 实例 <p>这是一个段落 </p> <p& ...
- 基于 Golang 构建高可扩展的云原生 PaaS(附 PPT 下载)
作者|刘浩杨 来源|尔达 Erda 公众号 本文整理自刘浩杨在 GopherChina 2021 北京站主会场的演讲,微信添加:Erda202106,联系小助手即可获取讲师 PPT. 前言 当今时 ...
- A Child's History of England.51
CHAPTER 14 ENGLAND UNDER KING JOHN, CALLED LACKLAND At two-and-thirty years of age, John became King ...
- adjust, administer
adjust to just, exact. In measurement technology and metrology [度量衡学], calibration [校准] is the compa ...