MySQL主从复制详细操作

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: MySQL主从复制详细操作

一、介绍

简称AB复制,在A主机上做create、update、insert、drop、delete等数据库、表、记录的增、删、改操作,B主机上会自动做数据库、表、记录的同步更新。


主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库 事务处理库,从库做查询库


二、A工作原理(即工作过程)

a. 在主库上把数据更改记录到二进制日志(Binary Log)中。


b. 备库将主库上的日志复制到自己的中继日志(Relay Log)中。


c. 备库读取中继日志中的事件,将其重放到备库数据库之上。

三、AB复制的一主一从模式工作过程

A主机: create database db1 ----> 会将此命令自动写入本机的二进制日志文件中


B主机:

I/O线程: 监测并读A主机上的二进制日志文件新增的内容,且将新内容写入到B主机自己的中继日志文件中

SQL线程 : 读取B主机上中继日志文件中心的SQL语句,并且自动执行这些SQL语句。最终在B主机上创建了db1这个库。


四、主从复制的作用

一是确保数据安全;做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据的丢失。


二是提升I/O性能;随着日常生产中业务量越来越大,I/O访问频率越来越高,单机无法满足,此时做多库的存储,有效降低磁盘I/O访问的频率,提高了单个设备的I/O性能。


三是读写分离,使数据库能支持更大的并发;在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度


实验准备(本实验都在VMware中完成)

Navicat 15 for MySQL (图形化工具)

两台主机,分为安装MySQL,一台作为主库,一台作为从库

1、主库 IP:192.168.112.130

2、从库 IP:192.168.112.140

3、一个写好的test.sql表

1、主库参数配置

在C盘下打开这个目录(注:programData为隐藏文件!!!)


打开 my.ini 配置文件

C:\ProgramData\MySQL\MySQL Server 5.7   
[mysqld] 
# Binary Logging.
# log-bin          ---把这一行的注释取消,并改为以下
log-bin=binlog
# server ID
Server-id=1
Binlog_format=row    ---添加这一行

打开命令提示符(cmd)

net stop mysql57     ---停止mysql
net start mysql57    ---启动mysql

2、配置从库参数

在C盘下打开这个目录(注:programData为隐藏文件!!!)

打开 my.ini 配置文件

C:\ProgramData\MySQL\MySQL Server 5.7  
[mysqld] 
# Binary Logging
# log-bin
relay-log = relay-bin   ---添加这个
# server ID
server-id = 2  ---改一下ID

打开Data文件,里面有一个 auto.cnf

把UUID的最后一个字母改成其他的,因为我们这个两个主机是复制出来的,所以会出现UUID相同的状况

[auto]server-uuid=bb8a3677-f728-11ea-913a-000c29035395   ---末尾最后一个数字随便改成什么都可以

打开命令提示符运行以下命令

net stop mysql57 停止
net start mysql57 启动

3、回到主库操作

把数据表test.sql文件复制到C盘下面

建立一个数据库名叫 test(以下命令在数据库中进行)

create database test default character set utf8;   

然后在命令提示符(cmd)上把我们的数据表文件复制到新建立的 test库中

Mysql -uroot -pXXGC.lab123 test < C:\test.sql

主库创建同步账号(数据库中进行)

create user 'edc'@'%' identified by '123456';
grant replication slave on *.* to 'edc'@'%';

查看主库binlog文件位置

show master logs;

展示日志文件

show binlog events in ‘binlog.000001’

刷新日志文件

Flush logs;

再运行

show master logs 

可以看到已经多了一个000002的日志文件


4、回到从库操作

把数据表test.sql文件复制到C盘下面

建立一个数据库名叫 test(以下命令在数据库中进行)

create database test default character set utf8;   

然后在命令提示符(cmd)上把我们的数据表文件复制到新建立的 test库中

Mysql -uroot -pXXGC.lab123 test < C:\test.sql

在新建的test数据库里执行此操作

CHANGE MASTER TO MASTER_HOST='192.168.112.130',
MASTER_PORT=3306,
MASTER_USER='edc',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='binlog.000002',
MASTER_LOG_POS=154;

开启主从复制 并检查状态

Start SLAVE;
Show SLAVE status;

这个时候就可以在主库里面写数据,然后可以看到从库就已经同步了;

5、常见问题:

Slave_SQL_Running: No

1.程序可能在slave上进行了写操作

2.也可能是slave机器重起后,事务回滚造成的.

一般是事务回滚造成的:

解决办法:

mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;




相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
SQL 关系型数据库 MySQL
mysql主从复制概述和配置
【10月更文挑战第22天】MySQL 主从复制是一种将主服务器的数据复制到一个或多个从服务器的技术,实现读写分离,提高系统性能和可用性。主服务器记录变更日志,从服务器通过 I/O 和 SQL 线程读取并应用这些变更。适用于读写分离、数据备份和恢复、数据分析等场景。配置步骤包括修改配置文件、创建复制用户、配置从服务器连接主服务器并启动复制进程。
514 1
|
监控 关系型数据库 MySQL
深入了解MySQL主从复制:构建高效稳定的数据同步架构
深入了解MySQL主从复制:构建高效稳定的数据同步架构
496 1
|
SQL 网络协议 关系型数据库
MySQL 主从复制
主从复制是 MySQL 实现数据冗余和高可用性的关键技术。主库通过 binlog 记录操作,从库异步获取并回放这些日志,确保数据一致性。搭建主从复制需满足:多个数据库实例、主库开启 binlog、不同 server_id、创建复制用户、从库恢复主库数据、配置复制信息并开启复制线程。通过 `change master to` 和 `start slave` 命令启动复制,使用 `show slave status` 检查同步状态。常见问题包括 IO 和 SQL 线程故障,可通过重置和重新配置解决。延时原因涉及主库写入延迟、DUMP 线程性能及从库 SQL 线程串行执行等,需优化配置或启用并行处理
380 40
|
关系型数据库 MySQL 数据库
RDS用多了,你还知道MySQL主从复制底层原理和实现方案吗?
随着数据量增长和业务扩展,单个数据库难以满足需求,需调整为集群模式以实现负载均衡和读写分离。MySQL主从复制是常见的高可用架构,通过binlog日志同步数据,确保主从数据一致性。本文详细介绍MySQL主从复制原理及配置步骤,包括一主二从集群的搭建过程,帮助读者实现稳定可靠的数据库高可用架构。
922 9
RDS用多了,你还知道MySQL主从复制底层原理和实现方案吗?
|
JavaScript 关系型数据库 MySQL
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
411 0
|
SQL 存储 关系型数据库
MySQL主从复制 —— 作用、原理、数据一致性,异步复制、半同步复制、组复制
MySQL主从复制 作用、原理—主库线程、I/O线程、SQL线程;主从同步要求,主从延迟原因及解决方案;数据一致性,异步复制、半同步复制、组复制
1899 11
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
389 24
|
NoSQL 关系型数据库 Redis
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
472 14
|
存储 关系型数据库 MySQL
MySQL主从复制原理和使用
本文介绍了MySQL主从复制的基本概念、原理及其实现方法,详细讲解了一主两从的架构设计,以及三种常见的复制模式(全同步、异步、半同步)的特点与适用场景。此外,文章还提供了Spring Boot环境下配置主从复制的具体代码示例,包括数据源配置、上下文切换、路由实现及切面编程等内容,帮助读者理解如何在实际项目中实现数据库的读写分离。
1758 1
MySQL主从复制原理和使用
|
SQL 关系型数据库 MySQL
Mysql中搭建主从复制原理和配置
主从复制在数据库管理中广泛应用,主要优点包括提高性能、实现高可用性、数据备份及灾难恢复。通过读写分离、从服务器接管、实时备份和地理分布等机制,有效增强系统的稳定性和数据安全性。主从复制涉及I/O线程和SQL线程,前者负责日志传输,后者负责日志应用,确保数据同步。配置过程中需开启二进制日志、设置唯一服务器ID,并创建复制用户,通过CHANGE MASTER TO命令配置从服务器连接主服务器,实现数据同步。实验部分展示了如何在两台CentOS 7服务器上配置MySQL 5.7主从复制,包括关闭防火墙、配置静态IP、设置域名解析、配置主从服务器、启动复制及验证同步效果。
554 0
Mysql中搭建主从复制原理和配置

推荐镜像

更多