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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 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文件,并将日志索引文件清空,重新开始所有新的日志文件--慎用!!
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
9月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
3128 57
|
8月前
|
关系型数据库 MySQL 分布式数据库
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
|
9月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
473 41
|
9月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
600 17
|
9月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
217 18
|
9月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
543 11
|
9月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
280 10
|
4月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。