mysql主从同步步骤(一主一从)

news2024/12/25 12:28:55

1、主库添加binlog配置,并设置server-id

server-id=124
# 设置日志格式,日志路径(注意路经需要mysql用户有权限写,默认地址放在datadir的目录下)
binlog_format=mixed
log-bin=mysql-bin

# 设置binlog清理时间(秒), binlog每个日志文件大小
binlog_expire_logs_seconds=604800
max_binlog_size=100m

# binlog缓存大小,最大binlog缓存大小
binlog_cache_size=4m
max_binlog_cache_size=512m

# 设置忽略binlog数据库
binlog-ignore-db=mysql

2、从库配置relaylog,并设置servcer-id

server-id=95

relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin

3、重启主库数据库,使配置生效,并创建从库同步用户

在主服务器上添加用于同步的账户

创建用户
create user`slave_user`@`%` identified by '123456';
赋予权限
grant all privileges ON *.* to 'slave_user'@'%';
flush privilieges; 
查看用户
select user, host from mysql.user;
查看用户全权限
show grants for 'slave_user'@'%';

4、备份主库数据到从库中

如果主库是新库,可以略去这步

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql
例如: mysqldump --default-character-set=utf8mb4 -h62.234.137.125 -P56612 -uslave_user -p123456 --databases workflow > /var/lib/mysql-files/workflow2.sql;

将主库的数据备份文件到从库执行
source /data/backup/cmdb.sql

5、记录主库bin位置信息

查看主服务器BIN日志的信息,记录下position位置
show master status;
在这里插入图片描述

6、重启从库,使配置生效,并设置同步

若从库已有同步请先关闭同步

关闭slave(如果你以前配置过主从的话,一定要先关闭)
命令:stop slave;

change master to MASTER_HOST='62.234.137.125', 	MASTER_PORT=56612, MASTER_USER='slave_user', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=4980;

参数解释:
MASTER_HOST : 设置要连接的主服务器的ip地址
MASTER_PORT	: 设置要连接的主服务器的端口
MASTER_USER : 设置要连接的主服务器的用户名	
MASTER_PASSWORD : 设置要连接的主服务器的密码
MASTER_LOG_FILE : 设置要连接的主服务器的bin日志的日志名称,即第3步得到的信息
MASTER_LOG_POS : 设置要连接的主服务器的bin日志的记录位置,即第3步得到的信息,(这里注意,最后一项不需要加引号。否则配置失败)

从服务器配置完成,启动从服务器:
命令: start slave;

查看slave状态
show slave status\G

在这里插入图片描述
看到slave运行状态如上图,代表同步开启正常

7、主从同步过程中可能遇到的问题

问题1:MySQL 连接出现 Authentication plugin ‘caching_sha2_password’ cannot be loaded
很多用户在使用Navicat Premium 12连接MySQL数据库时会出现Authentication plugin 'caching_sha2_password' cannot be loaded的错误。
出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 
修改账户密码加密规则并更新用户密码
ALTER USER 'slave_user'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;   #修改加密规则 
ALTER USER 'slave_user'@'%' IDENTIFIED WITH mysql_native_password BY '123456';   #更新一下用户的密码
问题2: Mysql主从架构报错-Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work…
在搭建Mysql主从架构过程中,由于从服务器是克隆的主服务器系统,导致主从mysql uuid相同, Slave_IO无法启动,报错如下:
The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
解决办法,修改其中一台服务器的server-uuid,并保证server-uuid的格式正确,修改完成之后重启Mysql服务就可以了。
在修改配置文件之前,先登录Mysql客户端查看uuid,把返回的uuid复制,放到要修改的配置文件即可。
问题3: ERROR 1396 (HY000): Operation CREATE USER failed for ‘XXXX’@‘XXXX’
drop user ‘slave_user’@’%’;
flush privileges;
之后create user ‘slave_user’@’%’ identified by ‘123456’;
赋予权限等等
问题4: mysql主从复制过程中出现删除从库中不存在的用户报错,可以跳过当前这个错误
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1     #跳过一个事务

上述主从通过,需要主从在备份数据的时候停止业务操作或则锁表进行

8、mysql不停止业务操作,不锁表同步

mysqldump --default-character-set=utf8mb4 -h62.234.137.125 -P56612 -uslave_user -p123456 --master-data --single-transaction --routines --flush-logs --databases workflow > /var/lib/mysql-files/workflow2.sql;

参数说明:
-h主机名  -P端口  -u用户名  -p密码
--master-data=2	在文件最后会记录当前变更的binlog文件和所在的位置position的位置信息
		=2是指将位置信息注释,默认=1,不注释位置信息
--single-transaction参数的作用,设置事务的隔离级别为可重复读即REPEATABLE READ
		这样能保证在一个事务中所有相同的查询读取到同样的数据,也就大概保证了在dump期间,如果其他innodb引擎的线程修改了表的数据并提交,对该dump线程的数据并无影响,在这期间不会锁表
--routines	导出存储过程以及自定义函数
--flush-logs 开始导出之前刷新日志。

备份出来的sql文件最后有当前备份的binlog文件和position位置信息
在同步的时候从这个位置开始同步就行了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/972745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线上问诊:数仓开发(三)

系列文章目录 线上问诊:业务数据采集 线上问诊:数仓数据同步 线上问诊:数仓开发(一) 线上问诊:数仓开发(二) 线上问诊:数仓开发(三) 文章目录 系列文章目录前言一、ADS1.交易主题1.交易综合统计2.各医院交易统计3.各性…

行业追踪,2023-09-04

自动复盘 2023-09-04 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

实时操作系统Freertos开坑学习笔记:(四):临界段保护、列表与列表项

前言 废话不多说,直接看主要要探究的问题: 一、临界段代码保护 1.什么是临界段? 图里面说,临界区的代码是不能被打断的,它运行时不能被中断打断,也不能由于非阻塞任务延时而切换到其他任务去。 比如说…

【Java转Go】Go中使用WebSocket实现聊天室(私聊+群聊)

目录 前言功能效果(一人分饰多角.jpg😎)用户上线、群聊私聊和留言下线 实现思路代码服务端 chat.go 完整代码客户端 html 完整代码 最后 前言 之前在Java中,用 springbootwebsocket 实现了一个聊天室:springbootwebso…

用BAPI创建销售订单条件价格有多个

说明: 在用BAPI_SALESORDER_CREATEFROMDAT2创建销售订单的时候,业务配置的是Z001自动出来的,我在BAPI条件那块赋值更改标识也是U,但是创建出来的单据还是有两条件类型。 解决方法: LOGIC_SWITCH-PRICING G .即可

AP9193 升压恒流驱动芯片 美容护肤仪 美容灯 锂电池升压驱动IC

AP9193 是一款高效率、高精度的升 压型大功率 LED 灯恒流驱动控制芯片。 应用领域 LED 灯杯 电池供电的 LED 灯串 平板显示 LED 背光 恒流充电器控制 大功率 LED 照明 AP9193 内置高精度误差放大器,固 定关断时间控制电路,恒流驱动电路等&#xff…

签到系统怎么设计

背景 相信签到系统大家都有接触过,更多的是使用。但是有思考过这种系统是怎么设计的吗?比方说我统计一下每个月中每天的签到情况,怎么设计呢?今天一篇文章告诉你。 首先,我们熟悉的思维是:我设计一个数据…

电商平台-业务中台-SPU,SKU,SN概念简介

什么是SPU (Standard Product Unit)? SPU标准属性是商品基本属性,基本属性中最核心两个属性是品牌和型号,电商平台一般采用 品牌和型号 来确定SPU(Standard Product Unit)标准化管理单元, 例如:小米 10 就…

Vue3 el-tooltip 根据内容控制宽度大小换行和并且内容太短不显示

el-tooltip 根据长度自适应换行以及显隐 环境 vue: "3.2.37" element-ui: "2.1.8"要求 tooltip 根据内容自动换行如果内容超出显示省略号显示&#xff0c;不超出不显示 tooltip 代码 组件 // ContentTip 组件 <template><el-tooltipv-bind&qu…

excel中的引用与查找函数篇1

1、COLUMN(reference)&#xff1a;返回与列号对应的数字 2、ROW(reference)&#xff1a;返回与行号对应的数字 参数reference表示引用/参考单元格&#xff0c;输入后引用单元格后colimn()和row()会返回这个单元格对应的列号和行号。若参数reference没有引用单元格&#xff0c;…

SOME/IP TTL 在各种Entry 中各是什么意思?有什么限制?

1 服务发现 SOME/IP SD 服务发现主要用于 定位服务实例检测服务实例状态是否在运行发布/订阅行为管理SOME/IP SD 也是 SOME/IP 消息,遵循 SOME/IP 消息格式,有固定的 Message ID、Request ID 以及 Message Type 等。并对 SOME/IP Payload 进行了详细的定义。 SOME/IP SD …

2023-9-4 快速幂求逆元

题目链接&#xff1a;快速幂求逆元 #include <iostream> #include <algorithm>using namespace std;typedef long long LL;LL qmi(int a, int k, int p) {LL res 1;while(k){if(k & 1) res (LL) res * a % p;k >> 1;a (LL) a * a % p;}return res; }i…

能力和结果之间的关系

大家好,这里是大话硬件。 今天这篇文章想和大家分享前段时间的一点工作体会,关于个人能力和工作结果之间的关系。 其实这些感悟是在上周三晚上下班,走在回家的路上,脑海中突然出现这样的体会,回到家里立马写了下来。因为是即时的灵感,完全是因为工作状态触发,立刻写下…

手写RPC框架--4.服务注册

RPC框架-Gitee代码(麻烦点个Starred, 支持一下吧) RPC框架-GitHub代码(麻烦点个Starred, 支持一下吧) 服务注册 服务注册a.添加服务节点和主机节点b.抽象注册中心c.本地服务列表 服务注册 a.添加服务节点和主机节点 主要完成服务注册和发现的功能&#xff0c;其具体流程如下&…

智能配电室运维云平台

智能配电室运维云平台依托电易云-智慧电力物联网&#xff0c;是通过物联网技术实现配电设备智能化管理和运维的云服务系统。该平台可以实时监测配电设备的运行状态、能耗情况、故障报警等信息&#xff0c;并通过云计算、大数据等技术进行分析和处理&#xff0c;提供精准的数据支…

数据结构前言

一、什么是数据结构&#xff1f; 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 上面是百度百科的定义&#xff0c;通俗的来讲数据结构就是数据元素集合与数据元素集合或者数据元素与数据元素之间的组成形式。 举个…

MyBatisPlus 基础实现(一)

说明 创建一个最基本的MyBatisPlus项目&#xff0c;参考官网。 依赖 MyBatisPlus 依赖&#xff0c;最新版是&#xff1a;3.5.3.2 &#xff08;截止2023-9-4&#xff09;。 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-bo…

Xcode打包ipa文件,查看app包内文件

1、Xcode发布ipa文件前&#xff0c;在info中打开如下两个选项&#xff0c;即可在手机上查看app包名文件夹下的文件及数据。

基于QWebEngine实现无头浏览器

无头浏览器 无头浏览器&#xff08;Headless Browser&#xff09;是一种没有图形用户界面&#xff08;GUI&#xff09;的浏览器。它通过在内存中渲染页面&#xff0c;然后将结果发送回请求它的用户或程序来实现对网页的访问&#xff0c;而不会在屏幕上显示网页。这种方式使得无…

编译OpenWrt内核驱动

编译OpenWrt内核驱动可以参考OpenWrt内部其它驱动的编写例程&#xff0c;来修改成自己需要的驱动 一、OpenWrt源代码获取与编译 1.1、搭建环境 下载OpenWrt的官方源码&#xff1a; git clone https://github.com/openwrt/openwrt.git1.2、安装编译依赖项 sudo apt update -…