主从复制|学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
日志服务 SLS,月写入数据量 50GB 1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 快速学习主从复制

开发者学堂课程【MySQL 高级应用 - 索引和锁主从复制】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/598/detail/8640


主从复制


内容介绍:

一、复制

二、一主一从常见配置

 

一、复制

1.复制的基本原理

slave 会从 master 读取 binlog 来进行数据同步。

1)三步骤+原理图

image.png

只要主机对应了changes ,会把这个行为写进 Binary log 里面,右边有一个 IO slaver 会照着这个日志操作,执行主机做的事情。主机做什么,slaver 就读什么,回传,然后写到中继日志里面,然后启动一个 sql 进行复制。总结起来,一共分为三步:

MYSQL 复制过程分成三步:

master 将改变记录到二进制日志( binary log )。这些记录过程叫做二进制日志事件, binary log events

slave master binary log events 拷贝到它的中继日志( relay log );

slave 重做中继日志中的事件,将改变应用到自己的数据库中。 MYSQL 复制是异步切串行化的。

2.复制的基本原则

1)每个 salve 只有一个 master

2)每个 slave 只能有一个唯一的服务器 ID

3)每个 master 可以有多个 salve

3.复制的最大问题——延时

 

二、一主一从常见配置

1.mysql 版本一致且后台以服务器运行,严禁版本跨越太多。最好是装同一个版本。从机要复制主机的数据,最好是两机在同一网段。

2.主从都配置在[mysqld]结点下,都是小写。[mysqld] 是固定节点。

3.主机修改 my.ini 配置文件

1)【必须】主服务器唯一 ID server-id=1

最好一号机是主机,

2)【必须】启用二进制日志,前下之意,配法如下:

log-bin=自己本地的路径/mysqlbin

例:log-bin=D:/devSoft/MySQLServer5.5/date/mysqlbin

3)【可选】启用错误日志,也就是说执行错误的时候,最好有一个日志能够记录错误

log-err=自己本地的路径/mysqlerr

例:log-err=D:/devSoft/MySQLServer5.5/date/mysqlerr

4)【可选】根目录,类似 java home

basedir=”自己本地路径

例: basedir=”D:/devSoft/MySQLServer5.5/”

5)【可选】临时目录,

tmpdir=”自己本地路径

例: tmpdir=”D:/devSoft/MySQLServer5.5/”

6)【可选】数据目录

datadir=”自己本地路径/Data/”

例:datadir=”D:/devSoft/MySQLServer5.5/Data”

7read-only=0    主机,读写都可以

8)【可选】设置不要复制的数据库,例如出厂目录等,可以忽略

binlog-ignore-db=mysql

9)【可选】设置需要复制的数据库

binlog-do-db=需要复制的主数据库名字

4. 从机修改 my.cnf 配置文件

1)【必须】从服务器唯一 ID

2)【可选】启用二进制日志(建议打开)

[root@atguigu~]# vim/ect/my.cnf

#replication master server(default

#binary logging is required for replication

log-bin-mysql-bin

server-id=2

5. 因修改过配置文件,请主机+从机都重启后台 mysql 服务

[root@atguigu~]# vim/ect/my.cnf

[root@atguigu~]# service mysql stop

Shutting down MYSQL...

[root@atguigu~]# service mysql start

Starting MYSQL...

[root@atguigu~]# ps - eflgrep mysel

6. 主机从机都关闭防火墙

1windows 手动关闭

2)关闭虚拟机 linux 防火墙  service iptables stop

7. Windows 主机上建立账户并授权slave

(1)GRANT REPLICATION SLAVE ON *.* TO ’zhangsan’@’ 从机器数据库 IP’IDENTIFIED BY ‘123456’;

//授权复制给从机,允许从机以 ZHANGSAN 这个用户名,123456的密码登陆

Mysql>GRANT REPLICATION SLAVE ON *.* TO ’zhangsan’@’ 192.168.124.9 ’ IDENTIFIED BY ‘123456’

C:\users\admin>D:

D:\devsoft\mysqlserver5.5\bin>mysql - u root - p

Mysql>GRANT REPLICATION SLAVE ON *.* TO ’zhangsan’@’192.168.14.167 ’ IDENTIFIED BY ‘123456’

如果执行完了,为了确保万无一失,最好刷新一下这个界面,使用:

flush privileges;

2)查询 master 的状态

show master status;

//查看主机的状态

记录下 File Postition 的值

File

Postition

Binlog_Do_DB

Binlog_Ignore_DB

Mysqlbin.000035

341

 

mysql

此表格明确可以抄写的地方与位置。

3)执行完此步骤后不要再操作主服务器 MYSQL,防止主服务器状态值变化

8. 在 Linux 从机上配置需要复制的主机

CHANGE MASTER TO MASTER_HOST=’192.168.14.165’,//

MASTER_USER=’zhangsan’,

MASTER_PASSWORD=’123456’,

MASTER_LOG_FILE=’mysqlbin.具体数字MASTER_LOG_POS=具体值

改成:

MASTER_LOG_FILE=’mysqlbin.000035’,MASTER_LOG_POS=341

[root@atguigu~]# mysql  -uroot -p

启动从服务器复制功能    

start slave;

show slave status\G

Waiting for master to send event

//已经待命状态

下面两个参数都是 Yes ,则说明主从配置成功!否则一定失败。

Slave_IO_Running:Yes

Slave_SQL_Running:Yes

Mysql>create database mydb58

Query OK. 1 row affected (0.03 see)

Mysql>use mydb58

Database changed

Mysql>create table dog (id int not null, name varchar(20))

Mysql>insert into dog values (1,‘ww1)

Query OK. 1 row affected (0.14 see)

Mysql>select * from dog;

id

name

1

Ww1

1 row in set  (0.04 see)

此时回到从机,查询:

Mysql> use mydb58

Database changed

Mysql>select * from dog;

id

name

1

Ww1

1 row in set  (0.00 see)

9.主机新建库、新建表、insert 记录,从机复制

10.如何停止从服务复制功stop slave;

//把从机停掉

以上就是 mysql 的主从复制。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
关系型数据库 MySQL 网络安全
MySQL主从复制之多主多从部署流程—2023.04
MySQL主从复制之多主多从部署流程—2023.04
989 0
|
SQL 存储 数据采集
【技术分享】元数据与数据血缘实现思路
【技术分享】元数据与数据血缘实现思路
6242 0
|
3月前
|
存储 SQL 关系型数据库
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
|
安全 Linux 网络安全
什么是VPN网关?
VPN网关是一款基于Internet的网络连接服务,通过加密通道的方式实现企业数据中心、企业办公网络或Internet终端与阿里云专有网络(VPC)安全可靠的连接。VPN网关提供IPsec-VPN连接和SSL-VPN连接。
1980 0
|
7月前
|
关系型数据库 Linux 数据库
PostgreSQL 入门指南:安装、配置与基本命令
本文从零开始,详细介绍如何在 Windows、Linux 和 macOS 上安装和配置 PostgreSQL,涵盖30+个实操代码示例。内容包括安装步骤、配置远程访问和用户权限、基础数据库操作命令(如创建表、插入和查询数据),以及常见问题的解决方案。通过学习,你将掌握 PostgreSQL 的基本使用方法,并为后续深入学习打下坚实基础。
7498 1
|
存储 运维 监控
优脑银河携手阿里云 探索脑科学的终极疆域
人类科学最后的疆域有两个,一个是浩瀚的宇宙,另一个就是人类的大脑。阿里云让优脑银河可以专注在技术研发上,早日帮助脑疾病患者度过难关。
112626 6
优脑银河携手阿里云  探索脑科学的终极疆域
|
关系型数据库 MySQL 网络安全
MySQL主从复制详细教程
配置MySQL的主从复制是一个细致的过程,需要仔细遵循上述步骤进行。一旦配置完成并运行正常,主从复制将大大提高数据库的可用性和读写性能。在操作过程中,务必保持谨慎,确保数据的一致性和安全性。
1026 0
|
机器学习/深度学习 前端开发 JavaScript
探寻前端巨变:从HTML到现代框架的发展历程
探寻前端巨变:从HTML到现代框架的发展历程
228 2
|
存储 NoSQL Redis
Redis入门到通关之数据结构解析-RedisObject
Redis入门到通关之数据结构解析-RedisObject
239 1
|
数据安全/隐私保护 Windows
windows系统bat批处理 查看当前电脑连接过的wifi名字和wifi密码
windows系统bat批处理 查看当前电脑连接过的wifi名字和wifi密码
582 0