Linux下搭建MySQL主从复制之一主一从架构

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
日志服务 SLS,月写入数据量 50GB 1个月
简介: Linux下搭建MySQL主从复制之一主一从架构

这里的配置指的是MySQL的my.cnf文件[mysqld]下进行配置。环境是Centos7.9+MySQL8.0,可以参考博文Centos7下使用RPM包安装MySQL8 。


如果是在虚拟机上操作并且是克隆方式生成的虚拟机(包含MySQL Server),则克隆的虚拟机MySQL Server的UUID相同,这是需要修改的。

vim /var/lib/mysql/auto.cnf
systemctl restart mysqld

【1】 主MySQL配置

建议MySQL版本一致且后台以服务运行,主从所有配置项都配置在[mysqld]节点下,且都是小写字母。


① 必选

主服务器唯一ID

# 主服务器唯一ID
server-id=1
#启用二进制日志,指明路径 log-bin=自己本地路径/mysqlbin
log-bin=mysqlbin


② 可选

# 0 默认 表示读写,1 表示只读
read-only=0
#设置日志文件保留的时长 单位是秒
binlog_expire_logs_seconds=6000000
# 控制单个二进制日志大小,此参数的最大和默认值是1GB
max_binlog_size=200M
# 设置不要复制的数据库
binlog-ignore-db=test
# 设置需要复制的数据库,如果不设置,则默认同步除忽略的之外的数据库
binlog-do-db=需要复制的主数据库名字
#设置binlog格式
binlog_format=STATEMENT
# --------其他亦可自行配置,比如数据目录--------
#错误日志
log-err=自己本地路径/mysqlerr
#根目录
basedir="自己本地路径"
# 临时目录
tmpdir="自己本地路径"
# 数据目录
datadir="自己本地路径/Data/"

重启后台MySQL服务,使配置生效。需要注意的是,建议先搭建主从配置,再创建数据库。MySQL主从复制起始时,从机不继承主机数据。

【2】从服务器配置

主要是从服务器唯一ID与二进制日志文件配置。

#[必选]
server-id=2
#[可选]如果默认已经配置,无需更改
log-bin=mysqlbin
#[可选] 启用中继日志
relay-log=mysql-relay

修改完配置需要重启MySQL服务。

【3】开启复制

① 主MySQL上建立账户并授权

在master上建立账户并授权给slave。

grant replication slave on *.* to 'slave1'@'从机数据库IP' identified by '123456'; # 5.5 ,5.7
flush privileges;

如果使用的MySQL8.0,需要如下的方式建立账户并授权salve。

#创建用户
create user 'slave1'@'%' identified by '123456';
#授予复制权限
grant replication slave on *.* to 'slave1'@'%';
#重置密码哦,必须执行
alter user 'slave1'@'%' identified with mysql_native_password by '123456';
#刷新权限
flush privileges;

查询master状态,并记录下file和position的值

show master status
mysql> show master status;
+-----------------+----------+--------------+------------------+-------------------+
| File            | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+------------------+-------------------+
| mysqlbin.000001 |     1164 |              |                  |                   |
+-----------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

到这里暂时不要操作master,防止状态值变化,接下来设置slave。

② 从机配置需要复制的主机

从机上复制主机的命令:

change master to 
master_host='主机IP',
master_user='主机用户名',
master_password='主机用户密码',
master_log_file='mysqlbin.具体数字',
master_log_pos=position数字;

举例:

change master to master_host='192.168.255.128',master_user='slave1',master_password='123456',
master_log_file='mysqlbin.000001',master_log_pos=1164;

启动slave同步

start slave;

如果报错如下:

可以执行如下操作,删除之前的relay_log信息。然后重新执行change master to ...语句即可。

如果报错如下:
在这里插入图片描述
可以执行如下操作,删除之前的relay_log信息。然后重新执行change master to ...语句即可。
reset sla

查看slave状态

show slave status

如果下面两个参数都是yes,则说明主从复制成功。

Slave_IO_Running:Yes
Slave_SQL_Running:Yes

停止从复制功能

stop slave

重新配置主从,需要在从机上执行:

stop slave;
reset master;#删除master中所有的binlog文件,并将日志索引文件清空,重新开始所有新的日志文件--慎用!!
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
10天前
|
存储 SQL 关系型数据库
MySQL进阶突击系列(03) MySQL架构原理solo九魂17环连问 | 给大厂面试官的一封信
本文介绍了MySQL架构原理、存储引擎和索引的相关知识点,涵盖查询和更新SQL的执行过程、MySQL各组件的作用、存储引擎的类型及特性、索引的建立和使用原则,以及二叉树、平衡二叉树和B树的区别。通过这些内容,帮助读者深入了解MySQL的工作机制,提高数据库管理和优化能力。
|
8天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
66 24
|
2天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
58 7
|
21天前
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
1月前
|
SQL 存储 缓存
【赵渝强老师】MySQL的体系架构
本文介绍了MySQL的体系架构,包括Server层的7个主要组件(Connectors、Connection Pool、Management Service & Utilities、SQL Interface、Parser、Optimizer、Query Caches & Buffers)及其作用,以及存储引擎层的支持情况,重点介绍了InnoDB存储引擎。文中还提供了相关图片和视频讲解。
【赵渝强老师】MySQL的体系架构
|
23天前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
1月前
|
Java Linux Android开发
深入探索Android系统架构:从Linux内核到应用层
本文将带领读者深入了解Android操作系统的复杂架构,从其基于Linux的内核到丰富多彩的应用层。我们将探讨Android的各个关键组件,包括硬件抽象层(HAL)、运行时环境、以及核心库等,揭示它们如何协同工作以支持广泛的设备和应用。通过本文,您将对Android系统的工作原理有一个全面的认识,理解其如何平衡开放性与安全性,以及如何在多样化的设备上提供一致的用户体验。
|
1月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
108 3
|
1月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
47 3
|
3天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
13 3