MySQL搭建主从备份读写分离(MySQL5.7案例)

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: MySQL搭建主从备份读写分离(MySQL5.7案例)

配置步骤

首先准备两台CentOS7(其他操作也行,本文由CentOS7做讲解),保证两台机器能够ping通

并且包装两台服务器当中安装同样版本的数据库,可参考我写的MySQL5.7安装文档https://blog.csdn.net/m0_51510236/article/details/113791490

然后使用其中一台作为主数据库(写、更改、删除都在这个里面),这里我是用 192.168.235.5 作为主数据库,用 192.168.235.7 作为从数据库(读可以在这个里面)。在 192.168.235.5 服务器当中修改 /etc/my.cnf 的 mysqld 添加如下配置:

# [mysqld]
server-id=5 # 建议使用IP地址的后缀,因为本机IP地址为 192.168.235.5 ,所以server-id为5
log-bin=master-bin
log_bin_index=master-bin.index
binlog_do_db=xiaohh_user  # xiaohh_user是要同步的数据库的名称,不写默认同步所有数据库
# 需要排除的数据库
binlog_ignore_db=information_schema
binlog_ignore_db=mysql
binlog_ignore_db=performance_schema
binlog_ignore_db=sys

写好之后:

然后使用 systemctl restart mysqld 重启数据库服务器,然后使用 show master status; 查询MySQL的 File 和 Position:

在 192.168.235.7 的从服务器上按照同样的方式配置上如下配置,然后从其服务器

# [mysqld]
server-id=7 # 建议使用IP地址的后缀
log-bin=slave-bin
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index

然后在 192.168.235.7 当中执行如下SQL:

change master to master_host='192.168.235.5', master_port=3306, master_user='root', master_password='root', master_log_file='master-bin.000001', master_log_pos=154;

以上SQL的讲解:

# 指定主数据库的地址
master_host='192.168.235.5'
# 指定主数据库的端口
master_port=3306
# 指定主数据库的登陆用户名
master_user='root'
# 指定主数据库的登陆密码
master_password='root'
# 在上一步当中利用 show master status; 命令查询出来的 File 字段
master_log_file='master-bin.000001'
# 在上一步当中利用 show master status; 命令查询出来的 Position 字段
master_log_pos=154

目前两台数据库服务器是没有 xiaohh_user 这个数据库的

192.168.235.7 数据库执行命令:

start slave;
• 1

我们使用SQL语句在 192.168.235.5 主服务器上创建这个数据库:

CREATE DATABASE `xiaohh_user`;
USE `xiaohh_user`;
CREATE TABLE `user` (
  `user_id` BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '用户id',
  `username` VARCHAR(50) NOT NULL COMMENT '用户名',
  `age` TINYINT UNSIGNED DEFAULT 18 COMMENT '年龄',
  `gender` TINYINT UNSIGNED DEFAULT 2 COMMENT '性别;0=男,1=女,2=未知'
) COMMENT '用户表';

查看效果:

在 192.168.235.5 插入一条数据并在从数据库当中查看:

INSERT INTO `user` (`username`, `age`, `gender`) VALUES ('XiaoHH', '24', '0');

在 192.168.230.7 从数据库当中查看:

常见坑点

应为我是在 VMware workstation 里面克隆的虚拟机,所以主数据库和从数据库在 auto.cnf 里面的uuid相同,我们可以在从数据库当中改一下uuid,这个文件默认是在 /var/lib/mysql/auto.cnf,随意更改最后一个字母或数字即可(毕竟这东西可以给世界上每一粒沙子编一个uuid,如果还重复,那么你可以去买彩票了):

从新启动集群,然后就正常了

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5月前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
6月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
537 10
|
11月前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
8月前
|
存储 关系型数据库 MySQL
【赵渝强老师】使用select...into outfile语句备份MySQL
本文介绍了MySQL中使用`SELECT...INTO OUTFILE`语句将表数据导出为文本文件的方法。通过示例演示了如何备份员工表(emp)的数据,包括创建存储目录、设置权限、配置参数`secure_file_priv`以及解决相关错误的过程。字段分隔符和行终止符可自定义,确保数据格式符合需求。最后展示了备份文件的内容,验证操作成功。
574 36
|
8月前
|
存储 SQL 关系型数据库
【赵渝强老师】使用mysqldump备份MySQL
本文介绍了 MySQL 自带的逻辑备份工具 mysqldump 的使用方法。通过 mysqldump,可以将数据库中的数据转换为对应的 SQL 插入语句,便于备份和还原。文章详细说明了如何备份所有数据库、指定数据库及特定表,排除某些表不备份的操作,以及删除数据库后如何通过备份文件恢复数据。同时提供了视频讲解和具体命令示例,帮助用户更好地理解和应用该工具。
827 5
|
10月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
498 28
|
8月前
|
存储 SQL 关系型数据库
【赵渝强老师】使用mydumper备份MySQL
本文介绍了使用mydumper工具进行MySQL数据库备份与恢复的操作方法。相比单线程工作的mysqldump,mydumper支持多线程,速度提升可达10倍。其功能包括事务性表快照、快速压缩、导出binlog等,并提供详细的参数说明和操作步骤。文章通过实例演示了安装mydumper、创建存储目录、全库备份、指定数据库及表备份、删除数据库以及使用myloader恢复数据的完整流程,并附带视频讲解,帮助用户更好地理解和应用该工具。
602 0
|
10月前
|
存储 关系型数据库 MySQL
利用Cron表达式实现MySQL数据库的定时备份
以上就是如何使用Cron表达式和mysqldump命令实现MySQL数据库的定时备份。这种方法的优点是简单易用,而且可以根据需要定制备份的时间和频率。但是,它也有一些限制,例如,它不能备份MySQL服务器的配置文件和用户账户信息,也不能实现增量备份。如果需要更复杂的备份策略,可能需要使用专门的备份工具或服务。
282 15
|
10月前
|
关系型数据库 MySQL 大数据
大数据新视界--大数据大厂之MySQL 数据库课程设计:MySQL 数据库 SQL 语句调优的进阶策略与实际案例(2-2)
本文延续前篇,深入探讨 MySQL 数据库 SQL 语句调优进阶策略。包括优化索引使用,介绍多种索引类型及避免索引失效等;调整数据库参数,如缓冲池、连接数和日志参数;还有分区表、垂直拆分等其他优化方法。通过实际案例分析展示调优效果。回顾与数据库课程设计相关文章,强调全面认识 MySQL 数据库重要性。为读者提供综合调优指导,确保数据库高效运行。
|
SQL 关系型数据库 MySQL
数据库数据恢复——MySQL简介和数据恢复案例
MySQL数据库数据恢复环境&故障: 本地服务器,安装的windows server操作系统。 操作系统上部署MySQL单实例,引擎类型为innodb,表空间类型为独立表空间。该MySQL数据库没有备份,未开启binlog。 人为误操作,在用Delete命令删除数据时未添加where子句进行筛选导致全表数据被删除,删除后未对该表进行任何操作。

推荐镜像

更多