news 2025/12/23 8:50:34

MySQL主从复制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL主从复制

MySQL 主从复制

MySQL主从负载至少需要2台数据库服务器,其中一台为master库,另外一台为slave库,MySQL主从数据同步时一个异步复制的过程,要实现负载首先需要在master 上开启bin-log 日志功能,bin-log日志用于记录在master 库中执行的增、删、修改、更新操作的SQL语句,真个过程需要开启3个现成,分别是master开启IO 线程,slave开启IO线程和SQL 线程,具体主从同步原理如下:

  • slave上执行slave start,slave IO 线程会通过在master 创建的授权用户连接上master,并请求master从指定的文件和位置之后发送bin-log 日志内容;
  • master接收到来着slave IO 线程的请求后,master IO 线程根据slave发送的指定bin-log日志position 点之后的内容,然后返回给slave 的IO 线程
  • 返回的信息中除了bin-log 日志内容外,还有master 最新的bin-log 文件名以及在bin-log中下一个指定更新position 点
  • slave IO线程接收到信息后,将接收到的日志内容依次添加到sloave段的relay-log文件的最末端,并将读取到的master 端的bin-log的文件名和position 点记录到master.info 文件中,一遍在下次读取的时候能告知master从相应的bin-log文件名及最后一个position 点开始发起请求
  • slave SQL 线程检测到relay-log中内容有更新,会立刻解析relay-log 日志中的内容,将解析后的SQL 语句在slave 里执行,执行成功后slave 库与master库数据保持一致

主从复制实现过程:

一、准备2台服务器:
master: 172.17.27.127
slave:172.17.191.75
MySQL 8.0 版本
二、配置主库(master):
1.修改 MySQL 配置文件:/etc/my.cnf

[mysqld]# 唯一服务器IDserver-id=1# 开启 binlog(必须!)log-bin=mysql-bin# MySQL 8.0 推荐设置binlog_format=ROW gtid_mode=ON enforce_gtid_consistency=ON
  1. 重启mysql
systemctl restart mysql

重启mysql 服务时如果报下面的错误,说明没有创建mysql 用户,创建一下mysql用户就可以

[root@master ~]# journalctl -xeDec1314:13:36 nodea100-2 systemd[40128]: Failed at stepUSERspawning /usr/bin/mysqld_pre_systemd: No such process -- Subject: Process /usr/bin/mysqld_pre_systemd could not be executed -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- The process /usr/bin/mysqld_pre_systemd could not be executed and failed. -- -- The error number returned by this process is3. Dec1314:13:36 nodea100-2 systemd[1]: mysqld.service: control process exited,code=exitedstatus=217Dec1314:13:36 nodea100-2 systemd[1]: Failed to start MySQL Server. -- Subject: Unit mysqld.service has failed......[root@master ~]# groupadd -g 27 mysql[root@master ~]# useradd -u 27 -g mysql -s /sbin/nologin -d /var/lib/mysql mysql[root@master ~]# chown -R mysql:mysql /var/lib/mysql[root@master ~]# systemctl restart mysqld
  1. 创建复制专用用户
-- 登录 MySQLmysql-u root-p-- 创建用户(允许从 172.17.191.75 连接)CREATEUSER'repl'@'172.17.191.75'IDENTIFIEDBY'-----';-- 授予复制权限GRANTREPLICATIONSLAVEON*.*TO'repl'@'172.17.191.75';-- 刷新权限FLUSHPRIVILEGES;
  1. 记录当前 bin-log 位置:
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/16 21:04:19

Signal-Android终极优化指南:7步实现APK大小缩减50%

Signal-Android终极优化指南:7步实现APK大小缩减50% 【免费下载链接】Signal-Android A private messenger for Android. 项目地址: https://gitcode.com/GitHub_Trending/si/Signal-Android Signal-Android是一款专注于隐私保护的即时通讯应用,其…

作者头像 李华
网站建设 2025/12/16 6:46:21

TUnit集成WireMock:构建稳定可靠的.NET测试体系

TUnit集成WireMock:构建稳定可靠的.NET测试体系 【免费下载链接】TUnit A modern, fast and flexible .NET testing framework 项目地址: https://gitcode.com/GitHub_Trending/tun/TUnit 在现代软件开发中,服务虚拟化已成为解决外部依赖测试难题…

作者头像 李华
网站建设 2025/12/22 21:07:33

2025三季度报告出炉,平安银行存款平稳运行付息率降本增效

近日,平安银行2025年三季度业绩报告正式披露。报告显示,平安银行存款规模保持平稳增长,付息率显著优化,为全年稳健经营奠定坚实基础。截至9月末,平安银行吸收存款本金余额达35,549.55亿元,较上年末增长0.6%,在复杂经济环境下展现出较强的韧性。存款规模稳中有进,付息成本持续下…

作者头像 李华
网站建设 2025/12/16 21:04:16

掌握问题解决的艺术:波利亚《怎样解题》思维训练指南

掌握问题解决的艺术:波利亚《怎样解题》思维训练指南 【免费下载链接】波利亚著怎样解题分享 波利亚著《怎样解题》 项目地址: https://gitcode.com/Open-source-documentation-tutorial/953ed 在当今充满挑战的世界中,高效的问题解决方法已成为每…

作者头像 李华
网站建设 2025/12/16 21:03:50

终极指南:如何快速上手MDPI Electronics论文LaTeX模板?

终极指南:如何快速上手MDPI Electronics论文LaTeX模板? 【免费下载链接】MDPIElectronicsLaTeX模板 MDPI Electronics LaTeX 模板欢迎来到MDPI Electronics专属LaTeX模板的下载仓库!本模板是专为撰写Electronics期刊论文设计的官方工具&#…

作者头像 李华
网站建设 2025/12/16 21:03:48

已验证!零基础转行网络安全,我亲身实践的半年高效学习路线与复盘

网络安全技术被广泛应用于各个领域,各大企业都在争抢网络安全人才,这使得网络安全人才的薪资一涨再涨,想转行网络安全开发的人也越来越多。而想要顺利转行网络安全开发,首先要学习网络安全技术,那么转行网络安全从何学…

作者头像 李华