mysql搭建主从复制(一主一从,双主双从)

主从复制原理

Mysql 中有一个binlog 二进制日志,这个日志会记录下所有修改了的SQL 语句,从服务器把主服务器上的binlog二进制日志在指定的位置开始复制主服务器所进行修改的语句到从服务器上执行一遍。

流程图

搭建一主一从

前期环境准备

Linux:centos7
mysql版本:mysql5.7(安装教程:https://blog.csdn.net/weixin_45797918/article/details/104929127
主服务器:10.10.10.130
从服务器:10.10.10.133

修改配置文件

主机配置

vim /etc/my.cnf

添加配置

主服务器唯一ID

server-id=1

启用二进制日志

log-bin=mysql-bin

设置不要复制的数据库(可设置多个)

binlog-ignore-db=mysql binlog-ignore-db=information_schema

设置需要复制的数据库

binlog-do-db=需要复制的主数据库名字

设置logbin格式

binlog_format=STATEMENT

从机配置

vim /etc/my.cnf

添加配置

从服务器唯一ID

server-id=2

启用中继日志

relay-log=mysql-relay

配置主机

在主机MySQL里执行授权命令

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';

mysql搭建主从复制(一主一从,双主双从)

查询master的状态

show master status;

mysql搭建主从复制(一主一从,双主双从)

记录下File和Position的值

执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化

配置从机

在主机MySQL里执行

CHANGE MASTER TO MASTER_HOST='10.10.10.130',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=154;

mysql搭建主从复制(一主一从,双主双从)

CHANGE MASTER TO MASTER_HOST=’主机的IP地址’,
MASTER_USER=’slave’,
MASTER_PASSWORD=’123456′,
MASTER_LOG_FILE=’mysql-bin.具体数字’,MASTER_LOG_POS=具体值;

启动从服务器复制功能

start slave;

查看从服务器状态

show slave status\G;

mysql搭建主从复制(一主一从,双主双从)

测试一主一从

主机创建testdb数据库和表user

mysql搭建主从复制(一主一从,双主双从)

mysql搭建主从复制(一主一从,双主双从)

从机直接刷新

mysql搭建主从复制(一主一从,双主双从)

搭建双主双从

前期环境准备

Master1:10.10.10.130
Slave1:10.10.10.133
Master2:10.10.10.134
Slave2:10.10.10.135

停止一主一从(没有启动的跳过)

从机上执行

stop slave;

重设

reset slave;

删除主机从机testdb数据库

修改配置文件

编辑Master1

修改配置文件,添加

vim /etc/my.cnf

mysql搭建主从复制(一主一从,双主双从)

主服务器唯一ID

server-id=1

启用二进制日志

log-bin=mysql-bin

设置不要复制的数据库(可设置多个)

binlog-ignore-db=mysql
binlog-ignore-db=information_schema

设置需要复制的数据库

binlog-do-db=需要复制的主数据库名字

设置logbin格式

binlog_format=STATEMENT

在作为从数据库的时候,有写入操作也要更新二进制日志文件

log-slave-updates

表示自增长字段每次递增的量,指自增字段的起始值,其默认值是1,取值范围是1 … 65535

auto-increment-increment=2

表示自增长字段从哪个数开始,指字段一次递增多少,他的取值范围是1 … 65535

auto-increment-offset=1

编辑Master2

修改配置文件,添加

vim /etc/my.cnf

mysql搭建主从复制(一主一从,双主双从)

主服务器唯一ID

server-id=3

启用二进制日志

log-bin=mysql-bin

设置不要复制的数据库(可设置多个)

binlog-ignore-db=mysql
binlog-ignore-db=information_schema

设置需要复制的数据库

binlog-do-db=需要复制的主数据库名字

设置logbin格式

binlog_format=STATEMENT

在作为从数据库的时候,有写入操作也要更新二进制日志文件

log-slave-updates

表示自增长字段每次递增的量,指自增字段的起始值,其默认值是1,取值范围是1 … 65535

auto-increment-increment=2

表示自增长字段从哪个数开始,指字段一次递增多少,他的取值范围是1 … 65535

auto-increment-offset=2

编辑Slave1

修改配置文件,添加

vim /etc/my.cnf

mysql搭建主从复制(一主一从,双主双从)

从服务器唯一ID

server-id=2

启用中继日志

relay-log=mysql-relay

编辑Slave2

修改配置文件,添加

vim /etc/my.cnf

mysql搭建主从复制(一主一从,双主双从)
#从服务器唯一ID
server-id=4
#启用中继日志
relay-log=mysql-relay

Master1、Master2授权slave并查看状态

Master1主机

MySQL里执行授权命令

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';

Master1

show master status;

mysql搭建主从复制(一主一从,双主双从)

Master2主机

MySQL里执行授权命令

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';

Master1

show master status;

mysql搭建主从复制(一主一从,双主双从)

启动双主双从

Slave1

执行

CHANGE MASTER TO MASTER_HOST='10.10.10.130',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=766;

启动两台从服务器复制功能

start slave;

查看从服务器状态

show slave status\G;

mysql搭建主从复制(一主一从,双主双从)

Slave2

执行

CHANGE MASTER TO MASTER_HOST='10.10.10.134',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=154;

启动两台从服务器复制功能

start slave;

查看从服务器状态

show slave status\G;

mysql搭建主从复制(一主一从,双主双从)

两个主机互相复制

Master2

执行

CHANGE MASTER TO MASTER_HOST='10.10.10.130',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=766;

启动两台从服务器复制功能

start slave;

查看从服务器状态

show slave status\G;

mysql搭建主从复制(一主一从,双主双从)

Master1

执行

CHANGE MASTER TO MASTER_HOST='10.10.10.134',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=154;

启动两台从服务器复制功能

start slave;

查看从服务器状态

show slave status\G;

mysql搭建主从复制(一主一从,双主双从)

复制主机的命令

CHANGE MASTER TO MASTER_HOST=’主机的IP地址’,
MASTER_USER=’slave’,
MASTER_PASSWORD=’123456′,
MASTER_LOG_FILE=’mysql-bin.具体数字’,MASTER_LOG_POS=具体值;

测试双主双从

在Master1创建数据库testdb

其他三个数据库刷新查询出现testdb数据库

mysql搭建主从复制(一主一从,双主双从)

在Master2创建user表

其他上数据库刷新出现user表

mysql搭建主从复制(一主一从,双主双从)

Original: https://www.cnblogs.com/raicho/p/12689712.html
Author: Raicho
Title: mysql搭建主从复制(一主一从,双主双从)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581414/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java控制Appium server start/stop

    相信很多人都会遇到这种场景,在进行appium自动化的时候用Windows OS,不好实现后台运行,每次启动Appium server: 使用Appium GUI版手动点击 就是在…

    Java 2023年5月29日
    085
  • Oracle扩展表空间

    Oracle扩展表空间 前言: Oracle表空间扩展最大为32G,目前我还未找到可以打破限制的办法。 一、查看表空间信息和使用情况 查看表空间的名字及文件所在位置 — &amp…

    Java 2023年6月8日
    0140
  • 2021年末总结

    一眨眼,距离上次写作已经两月有余。自己偷懒+繁忙,一直停滞下来,没有行动。这次得抓住年末的小尾巴,来一篇总结性的文章,对2021年的生活、工作画上一个完满的句号。 一、2021 去…

    Java 2023年6月15日
    096
  • java多线程实例程序实现与思想

    写程序之前要了解两个概念1.什么是进程2.什么是线程搞清楚这两个概念之后 才能写好一个合适而不会太抽象的程序对进程和线程的理解见链接: 那么理解了概念之后 如何写程序? 以银行取钱…

    Java 2023年6月7日
    071
  • 企业级微服务API网关Fizz-常用插件介绍

    前言 社区贡献的插件在 https://github.com/orgs/wehotel/repositories?type=all 下,一般以 fizz-plugin- 或 fiz…

    Java 2023年6月9日
    080
  • Nginx 源码分析– ngx_array、ngx_list基本数据结构

    应该说大家对这两个数据结构相当熟悉了,因此我们一并将它们进行分析,瞧一瞧nginx是如何实现它们的。在此篇之前,我们已经对nginx内存池(pool)进行了分析,在此基础上来理解n…

    Java 2023年6月15日
    079
  • Vuex 简单使用

    官网:https://vuex.vuejs.org/zh/ 参考文章:https://www.cnblogs.com/chinabin1993/p/9848720.html Vue…

    Java 2023年6月13日
    065
  • IDEA设置Scala变量自动带返回类型

    IDEA设置Scala变量自动带返回类型 设置快捷键: Ctrl+Alt+S位置: Settings –> Editor –> Code Style –> …

    Java 2023年6月9日
    082
  • 修饰符-static

    Java是由C/C++泛生的,其也保留了C/C++的部分特性,如关键字。在C/C++中,关键字有着特殊的含义。 在日常使用中关键字 static一般用来修饰类的属性和方法,而被st…

    Java 2023年6月5日
    092
  • java学习之springboot

    0x00前言 呀呀呀时隔好久我又来做笔记了,上个月去大型保密活动了,这里在网上看了一些教程如果说不是去做java开发我就不做ssm的手动整合了采用springboot去一并开发。S…

    Java 2023年6月13日
    072
  • Springboot+MDC+traceId日志中打印唯一traceId

    原文:https://www.jb51.net/article/225488.htm 目录 为什么需要这个traceId 2.通过MDC设置traceId 2.1 使用filter…

    Java 2023年5月30日
    088
  • 最长公共子序列

    很久之前就有研究这个算法 结果忘记上传了 哈哈 前天看到好多同学需要这个算法 所以 来吧 写一写 先来看下 什么是公共子序列 我直接来一张图 相信大家就明白了 当然 图片是百度到的…

    Java 2023年6月5日
    099
  • MongoDB 分片规则

    生命本身毫无意义,只有死亡才能让你邃晓人性的真谛! Ideal is the beacon. Without ideal, there is no secure direction…

    Java 2023年6月9日
    091
  • rabbitmq的基础使用

    一: 1.作用 异步:提高相应速度与吞吐量 解耦 削峰:以稳定的系统资源应对突发的流量冲击 2.缺点 系统可用性降低 系统的复杂性提高 消息一致性问题 3.rabbitmq 消息可…

    Java 2023年5月30日
    077
  • 部署springboot+vue项目文档(若依ruoyi项目部署步骤)

    部署springboot+vue项目文档(若依ruoyi项目部署步骤)一:部署linux + nginx二:部署windows + tomcat(无nginx)三:解决调用第三方a…

    Java 2023年5月30日
    069
  • Java8新特性-Lambda表达式

    总结一下java8中的新特性 lambda表达式 Lambda是一个匿名函数,可以理解为一段可以传递的代码(将代码…

    Java 2023年6月8日
    077
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球