`
ywu
  • 浏览: 457422 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

mysql主从复制

阅读更多

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负责将中继日志中的事件执行

启动这两个线程:


 或者分开启动

START SLAVE IO_THREAD;
START SLAVE SQL_THREAD;


 
先理解Slave_IO_Running 为connecting,的含义
主要有三个原因
1、网络不通
2、密码不对
3、pos不对
如果这三个都好,就会出现yes了
 
查了原因,主服务器开启了防火墙,关闭防火墙,关闭slave后重新启动
STOP SLAVE 后 START SLAVE
查看slave状态

 

数据从主服务器写入,然后同步至从服务器,因此,从服务器不能直接写,关闭从服务器写权限


 

 

此配置对于具有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状态


 

  • 大小: 665 Bytes
  • 大小: 2.5 KB
  • 大小: 1.9 KB
  • 大小: 6.1 KB
  • 大小: 2.5 KB
  • 大小: 3.1 KB
  • 大小: 2.8 KB
  • 大小: 2.4 KB
  • 大小: 4.8 KB
  • 大小: 18 KB
  • 大小: 12.6 KB
  • 大小: 1 KB
  • 大小: 18.6 KB
  • 大小: 1.5 KB
  • 大小: 5.3 KB
  • 大小: 8.6 KB
  • 大小: 7.1 KB
  • 大小: 2.3 KB
  • 大小: 7.1 KB
分享到:
评论

相关推荐

    使用keepalived实现对mysql主从复制的主备自动切换.docx

    "使用keepalived实现对mysql主从复制的主备自动切换" 本文主要讲解如何使用keepalived实现对mysql主从复制的主备自动切换。keepalived是一款高可用性解决方案,可以实现虚拟IP的管理和服务监控,在mysql主从复制...

    MySQL主从复制搭建从入门到掌握

    ### MySQL主从复制搭建知识点详解 #### 一、MySQL主从复制概述 MySQL主从复制是一种数据同步机制,它能够将一个MySQL服务器(主服务器)的数据自动同步到一个或多个MySQL服务器(从服务器)。这种机制不仅可以提高...

    MySQL主从复制与读写分离.docx

    MySQL 主从复制与读写分离 MySQL 主从复制是指将一个 MySQL 服务器的数据实时同步到另一个 MySQL 服务器中,以实现数据的高可用性和读写分离。下面是 MySQL 主从复制与读写分离的详细知识点: MySQL 主从复制 ...

    MySQL 主从复制模式全面实践

    MySQL主从复制模式是数据库领域内一种重要的数据同步机制,它能够让一台主数据库服务器(master)的数据实时复制到一个或多个从数据库服务器(slave)上。这种机制在数据库的高可用性、数据备份、读写分离以及负载...

    mysql 主从复制环境搭建

    MySQL 主从复制环境搭建 MySQL 是一个轻量级的开源框架,具有速度快、多线程、多用户和跨平台等特点。MySQL 主从复制是指将一个 MySQL 服务器的数据实时同步到另一个 MySQL 服务器上,通常用于提高数据安全、负载...

    MySQL主从复制.docx

    ### MySQL 主从复制详解 #### 一、引言 MySQL 的主从复制是一种常见的数据库架构模式,它能够帮助实现数据的自动备份与读写分离,从而增强数据安全性并提高数据库性能。本文将详细介绍 MySQL 主从复制的基本概念、...

    MySQL主从复制模式全面实践

    MySQL主从复制是一种数据库高可用性和数据冗余的重要机制,它允许数据从一个服务器(主节点)同步到一个或多个其他服务器(从节点)。在本实践中,我们将深入探讨这一模式的各个方面,包括其工作原理、配置步骤、...

    MySQL主从复制搭建 需要用到的脚本

    MySQL主从复制是一种常见的数据库高可用性和数据冗余策略,它允许数据在多个服务器之间同步,确保即使在主服务器故障时,从服务器也能接管服务,从而实现无中断的服务连续性。这里提到的“MySQL主从复制搭建 需要...

    SpringBoot第 12 讲:SpringBoot+MySQL主从复制、读写分离

    在本讲中,我们将深入探讨如何使用SpringBoot与MySQL实现主从复制以及读写分离的架构设计。这一技术方案在大型分布式系统中尤为常见,它能够有效地提高数据库系统的可用性和性能。 首先,让我们理解主从复制的核心...

    MySQL主从复制与读写分离

    MySQL主从复制与读写分离是数据库架构中的重要策略,旨在提高系统的可用性、扩展性和数据安全性。在大型系统中,随着数据量的增长和访问压力的增加,单一数据库服务器往往无法满足性能需求。主从复制和读写分离是...

    MYsql主从复制.docx

    "Mysql主从复制" Mysql主从复制是一种常用的数据库复制方式,旨在提高数据库的可用性、安全性和读取性能。在Mysql主从复制中,一个数据库服务器充当主服务器,其他服务器充当从服务器。主服务器负责写入数据,而从...

    Docker搭建MySQL主从复制(docker-compose)

    docker_compose搭建mysql主从复制

    docker-compose关于mysql主从复制一键搭建脚本

    关于博客: https://blog.csdn.net/qq_42413011/article/details/126914080 的搭建脚本

    mysql主从复制+lvs与keepalived实现负载高可用

    MySQL主从复制是数据库高可用性的一种常见策略,它允许数据在多个服务器之间实时或近实时地同步。这种配置使得当主服务器发生故障时,从服务器可以接管服务,确保业务连续性。在这个场景中,主机A(192.168.5.171)...

    MySQL主从复制-主库已有数据的解决方案.docx

    MySQL 主从复制主库已有数据的解决方案 在 MySQL 主从复制中,主库可能已经运行了一段时间,并且已经有了数据,这种情况在实际业务中很常见。这时,如何应对开启主从复制前主库有数据的场景?本文将介绍两种解决...

Global site tag (gtag.js) - Google Analytics