MySQL 5.7主从同步功能
目录一、环境准备二、主库配置1. 修改配置文件2. 创建复制用户3. 查看主库状态三、从库配置1. 修改配置文件2. 配置主从同步四、验证同步状态1. 查看从库状态2. 测试数据同步五、MySQL主从同步与Canal、Otter在功能上的区别六、创建mysql用户并赋权样例解析第一条语句创建用户第二条语句授予数据库权限第三条语句授予全局复制权限综合总结以下是一个完整的MySQL 5.7主从同步实例包含环境准备、配置步骤及验证过程一、环境准备主库MasterIP192.168.1.100操作系统CentOS 7MySQL版本5.7.44从库SlaveIP192.168.1.101操作系统CentOS 7MySQL版本5.7.44二、主库配置1. 修改配置文件编辑/etc/my.cnf添加以下内容[mysqld] server-id1 # 主库唯一ID log-binmysql-bin # 开启二进制日志 binlog_formatROW # 推荐使用ROW格式 binlog-do-dbtest # 仅同步test库可选 expire_logs_days7 # 日志保留7天重启MySQLsystemctl restart mysqld2. 创建复制用户登录MySQL执行CREATE USER repl192.168.1.101 IDENTIFIED BY Repl123456; GRANT REPLICATION SLAVE ON *.* TO repl192.168.1.101; FLUSH PRIVILEGES;3. 查看主库状态执行SHOW MASTER STATUS;**记录输出中的File和Position**如mysql-bin.000001、154后续从库配置需使用。三、从库配置1. 修改配置文件编辑/etc/my.cnf添加以下内容[mysqld] server-id2 # 从库唯一ID不能与主库重复 relay-logmysql-relay-bin # 开启中继日志 read_only1 # 从库只读生产环境建议开启重启MySQLsystemctl restart mysqld2. 配置主从同步登录从库MySQL执行CHANGE MASTER TO MASTER_HOST192.168.1.100, MASTER_USERrepl, MASTER_PASSWORDRepl123456, MASTER_LOG_FILEmysql-bin.000001, # 主库记录的File MASTER_LOG_POS154; # 主库记录的Position START SLAVE; # 启动同步四、验证同步状态1. 查看从库状态在从库执行SHOW SLAVE STATUS\G关键字段说明Slave_IO_RunningYes表示从库正在拉取主库日志。Slave_SQL_RunningYes表示从库正在执行日志中的SQL。Seconds_Behind_Master0表示无延迟若为NULL需检查网络或权限。2. 测试数据同步在主库插入数据USE test; INSERT INTO users (name, age) VALUES (Alice, 25), (Bob, 30);在从库查询数据USE test; SELECT * FROM users; # 应看到与主库一致的数据五、MySQL主从同步与Canal、Otter在功能上的区别MySQL主从复制通过binlog是MySQL数据库内置的功能通过复制binlog日志来实现数据的同步。支持异步、半同步和全同步复制。主要用于数据备份、读写分离、高可用性等场景。Canal是阿里巴巴开源的基于MySQL binlog的增量日志订阅和消费组件。模拟MySQL slave的交互协议伪装自己为MySQL slave向MySQL master发送dump协议获取binlog解析并存储。常用于将MySQL的数据变更同步到其他数据存储如Elasticsearch、Redis、HBase等或用于缓存更新、消息通知等。Otter也是阿里巴巴开源的分布式数据库同步系统基于Canal。提供分布式、可靠、低延迟的数据同步解决方案支持双向同步、冲突检测和解冲突等。主要用于跨机房、跨地域的数据同步支持多源、多目标、双向同步等复杂场景。六、创建mysql用户并赋权样例解析mysql CREATE USER maxwell% IDENTIFIED BY 123456; mysql GRANT ALL ON maxwell.* TO maxwell%; mysql GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO maxwell%;这些SQL语句的总体目的是创建一个名为 maxwell 的数据库用户并授予其特定的权限通常是为了让这个用户能够作为MySQL的数据同步工具如Maxwell、Canal等连接并捕获数据库的变更。第一条语句创建用户mysql CREATE USER maxwell% IDENTIFIED BY 123456;含义解释CREATE USER: 这是创建一个新用户的命令。maxwell%: 这是指定用户名和允许其连接的主机。maxwell: 是新创建的用户名。: 是分隔符。%: 是一个通配符代表任意主机。这意味着用户maxwell可以从任何IP地址或任何一台机器上连接到这个MySQL服务器。这在开发和测试环境中很方便但在生产环境中存在安全风险通常会限制为特定的IP地址例如maxwell192.168.1.100。IDENTIFIED BY 123456: 这部分设置了用户的登录密码。用户maxwell的密码被设置为123456。一句话总结创建一个名为maxwell的用户密码是123456并允许他从任何地方连接到MySQL服务器。第二条语句授予数据库权限mysql GRANT ALL ON maxwell.* TO maxwell%;含义解释GRANT: 这是授予权限的命令。ALL: 这是一个权限的简写代表所有权限如SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER等。ON maxwell.*: 这指定了权限应用的范围。maxwell: 是数据库名。.*: 是一个通配符代表该数据库中的所有表。所以maxwell.*的意思是在maxwell这个数据库里的所有表上。TO maxwell%: 指明将权限授予哪个用户。这里就是授予我们刚刚创建的maxwell用户。一句话总结授予用户maxwell对名为maxwell的数据库及其所有表拥有完全的增删改查和管理权限。这通常是为了让maxwell工具能自己创建和操作它所需要的状态表、配置表等。第三条语句授予全局复制权限mysql GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO maxwell%;含义解释GRANT: 授予权限的命令。SELECT, REPLICATION CLIENT, REPLICATION SLAVE: 这是授予的三个核心权限每个都非常重要SELECT: 允许用户从任何表中读取数据。对于数据同步工具来说这是为了能读取表的元数据如表结构和初始数据。REPLICATION CLIENT: 允许用户查询主服务器的二进制日志binlog文件和位置信息。执行SHOW MASTER STATUS;命令就需要这个权限。这是数据同步工具找到从哪里开始读取变更的关键。REPLICATION SLAVE: 允许用户连接到主服务器并请求其binlog数据流。这是实现数据实时同步的核心权限。没有这个权限工具就无法接收到数据库的增量变更。ON *.*: 这指定了权限应用的范围。第一个*代表所有数据库。第二个*代表所有表。所以*.*的意思是在整个MySQL服务器实例的所有数据库和所有表上。这使得这些权限成为全局权限。TO maxwell%: 再次指明将这些权限授予用户maxwell。一句话总结授予用户maxwell在整个MySQL服务器范围内的全局权限使其能够读取任何数据、查询复制状态以及作为“从库”一样拉取主库的二进制日志数据。综合总结这三条SQL语句组合在一起完整地完成了为数据同步工具如Maxwell准备专用账户的工作创建账户先建立一个叫maxwell的登录凭证。配置工作空间给这个账户一个专属的数据库maxwell让它在里面可以自由地读写和管理自己的配置信息而不会干扰其他业务数据库。授予核心能力最后授予它读取整个MySQL实例变更数据binlog的核心能力这是实现实时数据同步的根本。因此执行完这些命令后maxwell这个用户就具备了连接MySQL、监控并捕获所有数据库变更所需的最小但必要权限集合。

相关新闻

Linux核心操作与文件管理:通配符、权限、find与tar实践指南

Linux核心操作与文件管理:通配符、权限、find与tar实践指南

很多刚开始接触 Linux 的朋友,最容易卡住的地方往往不是某个复杂软件配置,而是像通配符、用户权限、find 搜索、归档压缩这些看似基础、实则贯穿日常所有操作的核心能力。这些命令单个拆开看都不难,可一旦组合起来,很多人就会懵—…

2026/9/30 10:58:44 阅读更多 →
Flask+Vue家政保洁预约系统:角色权限与订单状态机实战

Flask+Vue家政保洁预约系统:角色权限与订单状态机实战

做家政保洁预约系统,一开始我以为就是把“用户下单、师傅接单”这两件事串起来就完事了。真把需求理清之后才发现,这里面的角色远比想象中多:用户要看价格、要选时段,保洁员要接单、要上传完工照片,老板要排班、要核销…

2026/9/30 10:58:44 阅读更多 →
单点专注实验:9天只做一件事,告别低质量忙碌

单点专注实验:9天只做一件事,告别低质量忙碌

开头你有没有这种感觉:一天下来好像什么都做了,又好像什么都没做。早上打开电脑,回了几封邮件,刷了一会儿行业资讯,开了一个会,顺手解决了几个微信群里的问题,再抬头已经是下午,最该…

2026/9/30 10:58:44 阅读更多 →

最新新闻

iperf网络性能测试实战:从带宽测量到链路质量排查

iperf网络性能测试实战:从带宽测量到链路质量排查

说实话,网络问题排查是我日常工作中最讨厌的环节之一。上一秒还正常的服务,下一秒用户就反馈“页面打不开”,可你敲 ping 一切正常,看 CPU、内存也没毛病,最后折腾半天才发现问题出在链路质量上。这种时候,…

2026/9/30 11:40:53 阅读更多 →
UE5 EasyFog雾效实战:从安装、调参到蓝图动态控制

UE5 EasyFog雾效实战:从安装、调参到蓝图动态控制

做UE5场景氛围的时候,我习惯先往关卡里拖一个EasyFog把雾效底子立起来,再去慢慢调光照和颜色。这篇 UE5 EasyFog 使用教程不是把文档复读一遍,而是把我自己从插件安装、第一团雾出现、参数调整到蓝图动态控制的完整过程整理出来。如果你正在做…

2026/9/30 11:40:53 阅读更多 →
C++解力扣两数相加:链表模拟进位与边界调试全解析

C++解力扣两数相加:链表模拟进位与边界调试全解析

力扣第2题,两数相加,算得上是我入坑 C 刷题之后认真吃透的第一道链表题。之前看这题以为只是简单的“加一加”,真正手动把两个逆序链表过一遍边界之后才发现,里面藏了不少容易翻车的细节。这题在力扣热题 100 里排得很靠前&#x…

2026/9/30 11:40:53 阅读更多 →
跨系统数据通道架构实战:从点对点脚本到组件化方案

跨系统数据通道架构实战:从点对点脚本到组件化方案

跨系统数据通道,说白了就是把多个业务系统之间的数据流动管起来。我去年有一段时间,几乎天天在处理这类问题:ERP要往数仓推数据,CRM又要从数仓取客户标签,订单系统还要实时告诉库存系统发生了增减,每一组关…

2026/9/30 11:40:53 阅读更多 →
打印机工具箱怎么配:驱动、共享报错与维护全攻略

打印机工具箱怎么配:驱动、共享报错与维护全攻略

经常有朋友跑来问我:打印机又连不上了,驱动装了好几遍还是不行,共享打印老是报错,到底有没有一个"工具箱"能把问题全搞定?我的答案是:有,但这个"工具箱"并不是某一个单一的…

2026/9/30 11:40:53 阅读更多 →
基于JSP的课程评价系统设计与部署全攻略

基于JSP的课程评价系统设计与部署全攻略

课程评价系统这类题目,在计算机毕业设计里属于“看起来不惊艳、但做出来很有东西”的典型代表。我做过多届JavaWeb方向的毕设指导,也亲手带着学生把一个基于JSP的课程评价系统从零跑到上线,这里想把这个项目的完整思路、设计细节、编码套路和…

2026/9/30 11:39:52 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述:为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多,后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表,动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介:本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档,聚焦城市公共广告资源信息化管理痛点,提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构,含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求,背景很直接:公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关,开放给几个业务团队用。结果第一个月账单出来,额度直接超了 4 倍。仔细查日志,发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 8:16:59 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/29 8:24:48 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →