Mysql中复制详细解析

本文主要介绍了mysql复制详细解析,从基本概念、用途、实现方法以及集中模式进行了介绍,然后分享了具体实现代码,具有一定参考价值,需要的朋友可以了解下。

1.mysql复制概念

  指将主数据库的DDL和DML操作通过二进制日志传到复制服务器上,然后在复制服务器上将这些日志文件重新执行,从而使复制服务器和主服务器的数据保持同步。复制过程中一个服务器充当主服务器(master),而一个或多个其它服务器充当从服务器(slaves)。主服务器将更新重新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器、从服务器在日志中读取的最后一次成功更新的位置。从服务器接受从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。

2.复制的用途

  通过主从复制(master-slave)的方式来同步数据,再通过读写分离(mysql-proxy)来提升数据库的并发负载能力,或者用来作为主备机的设计,保证在主机停止响应之后在很短的时间内就可以将应用切换到备机上继续运行。

优势:

(1)数据库集群系统具有多个数据库节点,在单个节点出现故障的情况下,其他正常节点可以继续提供服务。
(2)如果主服务器上出现了问题可以切换到从服务器上
(3)通过复制可以在从服务器上执行查询操作,降低了主服务器的访问压力,实现数据分布和负载均衡
(4)可以在从服务器上进行备份,以避免备份期间影响主服务器的服务。

3.复制的实现(3种方法)

(1)DRBD是一种用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。
(2)Mysql cluster(又称mysql簇)。Mysql replicaion(复制)本身是一个比较简单的结构,即一台从服务器(slave)从一台主服务器(master)读取二进制日志然后再解析并应用到自身。
(3)一个简单复制环境只需要两台运行mysql的主机即可,甚至可以在一台物理服务器主机上启动两个mysqld实例。一个作为master而另一个作为slave来完成复制环境的搭配。但是在实际应用环境中,可以根据实际的业务需求利用mysql复制的功能自己搭建出其他多种更利于扩展的复制架构,如最常用的主从架构。
  主从架构指的是使用一台mysql服务器作为master,一台或多台mysql服务器作为slave,将master的数据复制到slave上。在实际应用场合,主从架构模式是mysql复制最常用的。一般在这种架构下,系统的写操作都是在master中进行,而读操作则分散到各个slave中进行,因此这种架构特别适合现在互联网高读写的问题。

Mysql数据库复制操作大概分为以下几个步骤:

(1)master启用二进制日志。启用二进制日志的操作在日志管理中有详细的介绍。
(2)slave上面的I/O进程连接上master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容。
(3)master接受到来自slave的I/O进程请求后,通过负责复制的I/O进程根据请求信息读取指定日志指定位置之后的日志信息,返回给slave的I/O。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到master端的bin-log文件的名称以及bin-log的位置。
(4)Slave的I/O进程接收到信息后,将接收到的日志内容依次添加到slave端的relay-log文件的最末端,并将读取到的master端的bin-log的文件名和位置记录到master-info文件中。
(5)Slave的sql进程检测到relay-log中新增的内容后,会马上解析relay-log的内容,并在自身执行。

4.mysql复制的集中模式

  mysql5.1之后的版本中,在复制方面的改进就是引进了新的复制技术——基于行的复制。这种技术就是关注表中发生变化的记录,而非以前的照抄binlog模式。从mysql5.1.12开始,可以用以下3种模式来实现。

(1)基于sql语句的复制(statement-base replication,sbr)
(2)基于行的复制(rbr)
(3)混合模式复制(mbr)

相应的,binlog的格式也有3种:statement、row、mixed。Mbr模式中,sbr模式是默认的。在运行时可以动态地改变binlog的格式。设定主从复制模式的方法非常简单,只要在以前设定复制配置的基础上,再添加一个参数,如下:

binlog_format=”statement”#binlog_format=”row”#binlog_format=”mixed”

当然了,也可以在运行时动态修改binlog的格式

Mysql> set session binlog_format=”statement”

5.控制主服务器操作

Master:192.168.11.139
Slave:192.168.11.130

(1)主服务器:

mysql> show variables like '%datadir%';+---------------+--------------------------+| Variable_name | Value          |+---------------+--------------------------+| datadir    | /application/mysql/data/ |+---------------+--------------------------+

在主服务器上开启二进制日志:

mysql> show variables like 'log_bin';+---------------+-------+| Variable_name | Value |+---------------+-------+| log_bin    | OFF  |+---------------+-------+row in set (0.00 sec)

OFF表示二进制日志是关闭的

开启日志3步骤:

①开启mysql安装目录/my.cnf
②找到[mysqld]这个标签,在此标签下面一行,添加语句如下:

log_bin[filename]

在该语句中,log-bin说明要开启二进制文件;filename是二进制日志的名字。如果没有指定,默认为主机名后面跟-bin作为文件名,默认存放在datadir目录中。在这里指定binary_log如果只对指定数据库生成二进制文件,则需要添加如下语句

Binlog-do-db=db_name(数据库名称)

如果不对指定数据库生成二进制文件日志,则需要添加如下语句

Binlog-ignore-db-db_name(数据库名称)

③重启mysql服务。可以在mysql安装目录/data文件夹下看到“binary_log.数字编号”文件,如binary_log.00001.以后每重启一次mysql服务,都会重新生成二进制文件,文件名中的数字编号一次增加。

开机成功后,修改mysql的配置文件my.cnf,设置server-id,代码如下

Server-id=1Binlog-do-db=xscjBinlog-ignore-db=mysqlServer-id=1:每一个数据库服务器都要指定一个唯一的server-id,通常主服务器为1,master和slave的server-id不能相同。Binlog-do-db:表示需要复制的数据库,这里以xscj为例Binlog-ignore-db:表示不需要复制的数据库

在master上创建复制所需要的用户

mysql> grant replication slave on *.* to rep_user@'%';Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.01 secmysql> show master statusG*************************** 1. row ***************************      File: binary_log.000001    Position: 303  Binlog_Do_DB: Binlog_Ignore_DB: row in set (0.00 sec)

将master主机的数据备份出来,保存在/data/binary_dump.txt文件中,然后导入到slave从机中去,具体执行语句如下

百度文心百中 百度文心百中

百度大模型语义搜索体验中心

百度文心百中 22 查看详情 百度文心百中

[root@localhost bin]# mysqldump -h localhost>/data/binary_dump.txt

(2)控制从服务器操作

修改从服务器的数据库配置文件,配置如下:

Server-id=2 ##设置从服务器idMaster-host=192.168.11.129Master-user=rep_userMaster-password=  ##设置连接主服务器的密码Replicate-do-db ##设置你要同步的数据库,可以设置多个Master-port= ##配置端口号重启slave,在slave主机的mysql重新执行如下命令,关闭slave服务Mysql>stop slave;设置slave实现复制相关的信息,执行如下命令Mysql>change master to>master_host='',>master_user='',>master_password='',>master_log_file='binary_log.000007',>master_log_pos=120;输入:show slave statusG用于提供有关从服务器线程的关键参数信息。

常用命令如下

选项

功能

Slave start

启动复制线程

Slave stop

停止复制线程

Reset slave

重置复制线程

Show slave status

显示复制线程状态

Show slave statusg

显示复制线程状态(分行显示)

Show master statusG

显示主数据库的状态(分行显示)

Show master logs

显示主数据库日志

Change master to

动态改变到主数据库的配置

Show processlistv

显示有哪些线程正在运行

大家学会了吗?赶紧动手尝试一下吧。

相关推荐:

mysql中复制表结构的方法小结_MySQL

MySQL中复制数据表中的数据到新表中的操作教程_MySQL

MySQL复制的概述、安装、故障、技巧、工具(火丁分享)

以上就是Mysql中复制详细解析的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/387986.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月6日 14:29:06
下一篇 2025年11月6日 14:33:29

相关推荐

  • 网络进化!

    Web 应用程序从静态网站到动态网页的演变是由对更具交互性、用户友好性和功能丰富的 Web 体验的需求推动的。以下是这种范式转变的概述: 1. 静态网站(1990 年代) 定义:静态网站由用 HTML 编写的固定内容组成。每个页面都是预先构建并存储在服务器上,并且向每个用户传递相同的内容。技术:HT…

    2025年12月24日
    000
  • 为什么多年的经验让我选择全栈而不是平均栈

    在全栈和平均栈开发方面工作了 6 年多,我可以告诉您,虽然这两种方法都是流行且有效的方法,但它们满足不同的需求,并且有自己的优点和缺点。这两个堆栈都可以帮助您创建 Web 应用程序,但它们的实现方式却截然不同。如果您在两者之间难以选择,我希望我在两者之间的经验能给您一些有用的见解。 在这篇文章中,我…

    2025年12月24日
    000
  • 深入学习响应式布局框架:适合初学者到专家的详尽指南

    响应式布局框架解析:从初学者到专家的必备指南 随着移动设备的普及和多样化,响应式布局成为了现代Web设计的必备技能。响应式布局框架以其简单、灵活和可维护的特点,成为了开发者们的首选工具。然而,对于初学者来说,学习和理解响应式布局框架可能会感到有些困惑。本文将从初学者到专家,为您提供一个详细的指南,帮…

    2025年12月24日
    000
  • 揭秘静态定位的不同类型:揭示常见的静态定位类型详解

    静态定位类型大揭秘:解析常见的静态定位类型有哪些 引言: 随着移动互联网和定位技术的迅速发展,静态定位在现代生活中扮演了重要的角色。静态定位是指通过对目标物体或者人体的位置信息进行测量和计算,来确定其准确位置的技术。它在导航、地图应用、智能交通系统等方面具有广泛的应用。本文将为大家揭秘常见的静态定位…

    2025年12月24日
    000
  • 优化CSS解析过程中的回流和重绘技巧

    CSS回流和重绘解析及优化技巧 近年来,网页性能优化成为了前端开发中的重要环节,其中包括对CSS回流和重绘的解析及优化。在优化CSS的过程中,我们需要了解回流和重绘的定义,并学习一些具体的优化技巧。 什么是回流和重绘? 回流(reflow)和重绘(repaint)是浏览器渲染引擎对网页进行布局和绘制…

    2025年12月24日
    000
  • 探秘五种流行的CSS布局框架

    CSS布局框架大揭秘:五种流行框架解析 引言:在网页设计和开发过程中,如何实现良好的布局一直是一个重要的挑战。CSS布局框架通过提供强大的工具和组件,帮助我们更轻松地创建复杂的布局,提高开发效率。在本文中,我们将探讨五种流行的CSS布局框架,并提供具体的代码示例。 一、BootstrapBootst…

    2025年12月24日 好文分享
    000
  • 深入了解五种常见的CSS布局框架解析

    了解CSS布局框架:五种常见布局解析 在网页设计与开发中,CSS布局是一个非常重要的方面。一个好的布局可以使网页更加美观、功能更加完善。而了解CSS布局框架的知识,则能够帮助我们更好地掌握网页的布局技巧。本文将介绍五种常见的CSS布局,并提供具体的代码示例。 一、流式布局(流式定位) 流式布局是一种…

    2025年12月24日
    000
  • 揭秘CSS框架:常见框架解析及特点研究

    CSS框架大揭秘:解析常见的几种框架及其特点,需要具体代码示例 引言:在现代网页设计中,CSS框架扮演着重要的角色,它们能够极大地简化我们的开发工作,提高开发效率。本文将深入解析常见的几种CSS框架,并提供详细的代码示例,帮助读者更好地理解和应用这些框架。 一、Bootstrap:Bootstrap…

    2025年12月24日
    000
  • 解析CSS伪类和伪元素的常见用法和实例

    深入探讨CSS伪类和伪元素的常见用法和实例解析 在前端开发中,CSS是我们常用的样式设计语言之一。除了基本的选择器和属性,CSS还提供了一些特殊的选择器,称为伪类和伪元素。本文将深入探讨CSS伪类和伪元素的常见用法和实例解析,并附上具体的代码示例。 一、伪类的常见用法和实例解析 :hover伪类 :…

    2025年12月24日
    000
  • CSS3的学习轨迹和常见误区解析

    CSS3的学习轨迹和常见误区解析 引言:随着Web技术的不断发展,CSS3已经成为了前端工程师必备的技能之一。通过掌握CSS3的各种功能和特效,我们能够创建出更加丰富多彩的网页布局和交互效果。本文将介绍CSS3的学习轨迹,同时分析一些常见的误区,并提供一些代码示例。 一、学习轨迹: 1.掌握基本语法…

    2025年12月24日
    000
  • CSS如何实现任意角度的扇形(代码示例)

    本篇文章给大家带来的内容是关于CSS如何实现任意角度的扇形(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 扇形制作原理,底部一个纯色原形,里面2个相同颜色的半圆,可以是白色,内部半圆按一定角度变化,就可以产生出扇形效果 扇形绘制 .shanxing{ position:…

    2025年12月24日
    000
  • canvas线条的属性解析

    本文主要和大家介绍了canvas线条的属性详解的相关资料,小编觉得挺不错的,现在分享给大家,希望能帮助到大家。 一、线条的帽子lineCap 取值:butt(默认值),round圆头,square方头 var canvas=document.getElementById(“canvas”);canv…

    2025年12月24日 好文分享
    000
  • 对CSS继承的深度解析

      我酷爱模块化设计。长期以来我都热衷于将网站分离成组件,而不是页面,并且动态地将那些组件合并到界面上。这种做法灵活,高效并且易维护。   但是我不想我的设计看上去是由一些不相关的东西组成的。我是在创造一个界面,而不是一张超现实主义的照片。   很幸运的是,已经有一项叫做 CSS 的技术,就是特意设…

    2025年12月23日
    000
  • 解析CSS3中nth-child与nth-of-type的区别

    css3中nth-child与nth-of-type的区别其实很简单::nth-of-type为什么要叫:nth-of-type?因为它是以”type”来区分的。也就是说:ele:nth-of-type(n)是指父元素下第n个ele元素, 而ele:nth-child(n)是…

    2025年12月23日 好文分享
    000
  • html中怎么运行sql语句_html中运行sql语句方法【教程】

    必须通过后端服务执行SQL操作。一、PHP与MySQL交互:使用PHP脚本在服务器端连接数据库,执行查询并嵌入HTML输出,避免硬编码凭证。二、Ajax调用API:前端通过JavaScript向后端API发送请求,服务端执行SQL并返回JSON数据,前端动态渲染结果。三、SQLite与JavaScr…

    2025年12月23日
    000
  • html手机怎么运行_手机运行html方法【教程】

    1、使用手机浏览器可直接打开本地HTML文件,只需通过文件管理器点击文件并选择浏览器打开即可预览;2、借助Spck Editor等专用编辑器应用能实现实时编辑与预览,适合开发调试;3、对于含JavaScript或需服务器支持的动态内容,应安装KSWEB类应用搭建本地服务器,再通过http://loc…

    2025年12月23日
    000
  • html如何连接_连接HTML与数据库或API接口【接口】

    HTML无法直接连接数据库或调用API,需借助JavaScript fetch、PHP中转、Node.js后端或Python Flask等服务端技术实现动态数据交互。 如果您希望在网页中动态获取数据,HTML本身无法直接连接数据库或调用API接口,必须借助服务器端语言或JavaScript等客户端技…

    2025年12月23日
    000
  • HTML如何添加批注功能_评论系统实现方案【教程】

    可实现HTML文本批注功能的四种方案:一、基于HTML5自定义属性与JS的静态批注;二、遵循W3C标准的语义化批注;三、嵌入Utterances或Giscus等第三方评论系统;四、自建AJAX评论后端+前端组件。 如果您希望在HTML页面中为特定文本添加可交互的批注功能,或构建一个轻量级的评论系统,…

    2025年12月23日
    000
  • html怎么在本地服务器运行_本地服务器运html方法【指南】

    使用本地服务器运行HTML文件需通过HTTP协议,可选Python命令启动服务、Node.js的http-server、VS Code的Live Server插件或XAMPP等工具,确保AJAX等功能正常。 要在本地服务器运行HTML文件,不能直接双击打开,因为部分功能(如AJAX、API调用)需要…

    2025年12月23日
    200
  • phpstudy怎么运行本地html_phpstudy运行本地html方法【教程】

    确保Apache或Nginx服务已启动;2. 将HTML文件放入WWW目录;3. 浏览器访问localhost即可运行页面。 在使用 PHPStudy 时,运行本地 HTML 文件非常简单。PHPStudy 是一个集成了 Apache/Nginx、PHP 和 MySQL 的集成环境工具,主要用于本地…

    2025年12月23日
    000

发表回复

登录后才能评论
关注微信