首页 > 数据库 >MySQL:如何实现主从复制?

MySQL:如何实现主从复制?

时间:2023-05-05 17:55:43浏览次数:48  
标签:主库 主从复制 如何 master MySQL 日志 从库 id

简介

MySQL主从复制是一个异步的复制过程,底层是基于MySQL数据库自带的二进制日志功能。

指一台或多台MySQL数据库(从库,slave)从另一台数据库(主库,master)进行日志的复制、日志解析,最终实现从库数据与主库数据保持一致。

 

原理

1、master将 改变 记录到二进制日志中。

2、slave将master的二进制日志拷贝到自己的中继日志中。

3、slave解析执行中继日志中的事件,实现改变统一。

 

步骤

 一、配置主库(centos系统,mysql 8)

  1、在主库的配置文件 my.cnf 中添加配置。

#服务器节点id,一般为服务器ip方便区分
server-id=106
##开启日志文件
log-bin=mysql-bin

  2、重启MySQL服务。

systemctl restart mysqld

  3、查看配置是否成功,查看服务器id。

show variables like '%server_id%';

  4、创建一个用户,并授予他从主库复制权限。

#创建用户
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
#授予权限
GRANT REPLICATION SLAVE ON *.* TO 'username'@'%';

  5、获取到此时主库的状态信息,记下File、Position字段的值,并保持主库状态静止。

show master status;

    运行结果:

 

二、配置从库(Windows系统,mysql 8)

  1、在从库的配置文件 my.ini 中添加配置。

//服务器唯一id
service-id=101

  2、重启服务

  3、执行连接代码,参数为主库ip地址、之前创建的用户密码、之前记下的File、Position字段的值,mysql8使用了SSL/TLS加密,所以必须指定get_master_public_key,否则连接失败。

change master to master_host='主库ip地址',master_user='username',master_password='password',master_log_file='mysql-bin.000001',master_log_pos=699,get_master_public_key=1;

  4、启动从库复制线程

start slave;

  5、查看复制线程状态

show slave status;

运行结果:

  表明监听主库变化的IO线程和准备执行修改同步的SQL线程都正常运行中。配置成功。

 

标签:主库,主从复制,如何,master,MySQL,日志,从库,id
From: https://www.cnblogs.com/lurenjia-bky/p/17372241.html

相关文章

  • linux 安装二进制mysql
    https://www.mysql.com/https://dev.mysql.com/downloads/社区版本https://downloads.mysql.com/archives/community/下载linux-genericproductversion5.7.20operatingsystemlinux-GenericosVersionLinux-Generic(glibc2.12)(x86,64-bit)CompressedTARArchi......
  • mysql8.0 使用navicat报caching_sha2_password' cannot be loaded解决方法
    安装8.0版本的mysql后,使用navicat连接时,报caching_sha2_password'cannotbeloaded的异常。原因为:8.0版本的mysq用户密码加密方式为caching_sha2_password,navicat暂不支持,需要修改下mysql的加密方式。解决过程:#(不建议用root进行连接)#1.登陆mysqlmysql-uroot-p#2.查看......
  • 如何配置Apple推送证书 push证书
     很多开发者使用hbuilder打包应该都有遇到这个问题,“profile文件不支持推通知功能,但manifest.json中选择了Push(消息推送)模块,请重新生成profile文件”。想要使用Apple的推送功能就需要配置push证书,然后使用快捷工具appuploader工具制作证书,最后使用hbuilder打包就可以了。......
  • 如何使用brew(Homebrew)
    #brew安装,如果安装速度慢或者被墙,可自行网上找镜像链接安装/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install.sh)"#常用命令brew-v#查看brew版本号brewinstallxxx#安装包brewsearchxxx#搜索包brewinfoxxx#......
  • keepalived如何手动切换主备
     概述主备部署中使用keepalived可以很方便的实现,安装维护简单,功能稳定。最近在使用过程中有小的发现,记录一下。环境CentOSLinuxrelease7.9.2009(Core)keepalived.x86_641.3.5-19.el7安装配置centos7自带的keepalived版本为1.3.5,直接使用yum安装sudoyuminstallk......
  • 代码大全-如何建立一个高质量的子程序
    不积硅步,无以至千里;不积小流,无以成江海。大型的项目是由一个个小模块构建而成。每一个小模块里面又包含着许多子程序。如果每一个子程序都能做到高质量,那么整个项目代码的质量必然很高。......
  • MySQL查出所有的主外键关系、级联关系,并记录起来,删除所有的外键关系,根据记录重新建立
    查出所有的主外键关系并记录起来可以通过查询information_schema数据库中的REFERENTIAL_CONSTRAINTS表来获取所有的主外键关系。以下是查询语句:`SELECTK.CONSTRAINT_NAME,--外键约束名K.TABLE_NAME,--子表外键所在表名K.COLUMN_NAME,--外键所在列名......
  • MySQL 8.0关闭binlog
    MySQL8.0关闭binlog默认开启binlog,即使在my.ini或my.cnf的[mysqld]部分没有log_bin或log_bin=mysql-binbinlog默认在Linux的/var/lib/mysql目录下,文件名为binlog.000001格式,在Windows的data目录下,文件名为binlog.000001格式相当于默认有log_bin=binlog参数如果需要关闭......
  • 【解决】mysql本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用
    在计算机管理中启动时,发现mysql报错:mysql本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。该问题的解决方式为:1找到Mysql的安装路径,看看有没有data文件夹,如果没有data文件夹,自己重新建一个;如果有的话,就把里面的内容全部清空,但保留该目录......
  • 如何在 AlmaLinux 8 上安装和使用 Docker
    Docker是面向开发人员和系统管理员的强大平台,可简化在软件容器内部署应用程序的过程。容器允许您将应用程序及其所有部分(代码、运行时、系统工具、系统库——通常位于/usr/bin或/usr/lib中的任何内容)打包,以便它可以在任何Linux机器上一致地运行。这包括操作系统内核和其......