mysql的主从复制基于二进制日志和中继日志,所以,日志是复制的关键。
环境:
安装好两台mysql服务器,ip分别为192.168.0.104(slave)、192.168.0.105(master),端口默认为3306,安装路径为/usr/local/mysql,data目录为安装目录下的data目录。两台mysql都是5.5版本的。
master配置:
编辑master服务器的/etc/my.cnf配置文件,在[mysqld]标签下
1、启用二进制日志
打开log-bin和binlog_format选项,默认这两项是开启的
2、配置服务器id,主从复制中,每台服务器的id不能一样,范围为1-2^32-1
这里master服务器的server id使用默认值1
3、创建具有复制权限的用户
配置完后启动主服务器
slave配置:
编辑slave服务器的/etc/my.cnf文件,在[mysqld]标签下
1、禁用二进制日志
2、开启中继日志
3、修改server id
启动从服务器
查看从服务器状态
此时从服务器虽然启动了,但是还没有连接到主服务器,连接至主服务器
MASTER_HOST:主服务器ip
MASTER_USER:主服务器中用于复制的用户(主服务器中使用GRANT命令创建的账号)
MASTER_PASSWORD:主服务器中用于复制的用户密码
MASTER_LOG_FILE:主服务器中正在使用的二进制日志,在主服务器中使用show master status查看
MASTER_LOG_POS:当前event所在位置
再次查看slave服务器状态
其中,Slave_IO_Running和Slave_SQL_Running都显示为No
从服务器上会有IO_THREAD和SQL_THREAD两个线程,IO_THREAD负责从master服务器中复制二进制日志中的事件至slave服务器的中继日志中,SQL_THREAD负责将中继日志中的事件执行
启动这两个线程:
或者分开启动
主要有三个原因
1、网络不通
2、密码不对
3、pos不对
如果这三个都好,就会出现yes了
数据从主服务器写入,然后同步至从服务器,因此,从服务器不能直接写,关闭从服务器写权限
此配置对于具有SUPER权限的用户没限制
修改完配置,需要重启服务
service mysqld restart
配置主服务器二进制日志写方式(二进制日志有缓存,宕机可能会造成日志未同步到从服务器)
编辑my.cnf文件,配置sync-binlog = ON
接下来,在master服务器中修改数据,数据会被同步到slave服务器。
过滤
有时候只想同步某几个数据库,或某几张表,mysql服务端提供了几个变量来过滤
master端:
binlog-do-db:仅将指定数据库的修改记录二进制日志中
binlog-ignore-db:忽略指定数据库的更新
slave端:
replicate-do-db:仅将指定数据库的修改同步
replicate-ignore-db:忽略指定数据库的更新
replicate-do-table:仅将指定表的修改同步
replicate-ignore-table:忽略指定表的更新
replicate-wild-do-table:使用通配符指定表
replicate-wild-ignore-table:使用通配符忽略表
虽然在master和slave端都能过滤,建议只在slave端配置过滤规则
配置slave端仅同步test数据库
编辑my.cnf文件,添加如下配置
查看slave状态
相关推荐
"使用keepalived实现对mysql主从复制的主备自动切换" 本文主要讲解如何使用keepalived实现对mysql主从复制的主备自动切换。keepalived是一款高可用性解决方案,可以实现虚拟IP的管理和服务监控,在mysql主从复制...
### MySQL主从复制搭建知识点详解 #### 一、MySQL主从复制概述 MySQL主从复制是一种数据同步机制,它能够将一个MySQL服务器(主服务器)的数据自动同步到一个或多个MySQL服务器(从服务器)。这种机制不仅可以提高...
MySQL 主从复制与读写分离 MySQL 主从复制是指将一个 MySQL 服务器的数据实时同步到另一个 MySQL 服务器中,以实现数据的高可用性和读写分离。下面是 MySQL 主从复制与读写分离的详细知识点: MySQL 主从复制 ...
MySQL主从复制模式是数据库领域内一种重要的数据同步机制,它能够让一台主数据库服务器(master)的数据实时复制到一个或多个从数据库服务器(slave)上。这种机制在数据库的高可用性、数据备份、读写分离以及负载...
MySQL 主从复制环境搭建 MySQL 是一个轻量级的开源框架,具有速度快、多线程、多用户和跨平台等特点。MySQL 主从复制是指将一个 MySQL 服务器的数据实时同步到另一个 MySQL 服务器上,通常用于提高数据安全、负载...
### MySQL 主从复制详解 #### 一、引言 MySQL 的主从复制是一种常见的数据库架构模式,它能够帮助实现数据的自动备份与读写分离,从而增强数据安全性并提高数据库性能。本文将详细介绍 MySQL 主从复制的基本概念、...
MySQL主从复制是一种数据库高可用性和数据冗余的重要机制,它允许数据从一个服务器(主节点)同步到一个或多个其他服务器(从节点)。在本实践中,我们将深入探讨这一模式的各个方面,包括其工作原理、配置步骤、...
MySQL主从复制是一种常见的数据库高可用性和数据冗余策略,它允许数据在多个服务器之间同步,确保即使在主服务器故障时,从服务器也能接管服务,从而实现无中断的服务连续性。这里提到的“MySQL主从复制搭建 需要...
在本讲中,我们将深入探讨如何使用SpringBoot与MySQL实现主从复制以及读写分离的架构设计。这一技术方案在大型分布式系统中尤为常见,它能够有效地提高数据库系统的可用性和性能。 首先,让我们理解主从复制的核心...
MySQL主从复制与读写分离是数据库架构中的重要策略,旨在提高系统的可用性、扩展性和数据安全性。在大型系统中,随着数据量的增长和访问压力的增加,单一数据库服务器往往无法满足性能需求。主从复制和读写分离是...
"Mysql主从复制" Mysql主从复制是一种常用的数据库复制方式,旨在提高数据库的可用性、安全性和读取性能。在Mysql主从复制中,一个数据库服务器充当主服务器,其他服务器充当从服务器。主服务器负责写入数据,而从...
docker_compose搭建mysql主从复制
关于博客: https://blog.csdn.net/qq_42413011/article/details/126914080 的搭建脚本
MySQL主从复制是数据库高可用性的一种常见策略,它允许数据在多个服务器之间实时或近实时地同步。这种配置使得当主服务器发生故障时,从服务器可以接管服务,确保业务连续性。在这个场景中,主机A(192.168.5.171)...
MySQL 主从复制主库已有数据的解决方案 在 MySQL 主从复制中,主库可能已经运行了一段时间,并且已经有了数据,这种情况在实际业务中很常见。这时,如何应对开启主从复制前主库有数据的场景?本文将介绍两种解决...