我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【MySQL】主从复制(两台服务器)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【MySQL】主从复制(两台服务器)

概述

主从复制是将主数据库的DDL(数据定义语句)和 DML(数据操作语句)操作通过二进制日志(binlog)传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。主库通常称为Master,从库通常称为Slave。

优点

主库发生问题,可以快速切换到从库提供服务。

实现读写分离,降低主库的访问压力。

可以在从库中执行备份,以避免备份期间影响主库服务。

原理

        当从服务器连接到主服务器时,从服务器会启动一个I/O线程,该线程会连接到主服务器,并请求复制主服务器上的二进制日志。I/O线程会将二进制日志的内容读取到本地的中继日志(relay log)中,并保存在本地磁盘上。

        I/O线程的主要任务是从主服务器上读取二进制日志,并将其写入从服务器的中继日志。I/O线程的工作方式如下:

从服务器向主服务器发送一个请求,请求复制主服务器上的二进制日志。

主服务器接收到请求后,将二进制日志的内容发送给从服务器。

I/O线程在从服务器上读取二进制日志,并将其写入中继日志。

从服务器周期性地向主服务器发送心跳包,以确保主从服务器之间的连接正常。

如果主服务器发生故障,从服务器可以自动切换到另一个主服务器(即主服务器的备份服务器)。

        当I/O线程将二进制日志写入中继日志后,SQL线程会读取中继日志中的内容,并执行其中的SQL语句。SQL线程的主要任务是将中继日志中的SQL语句执行到从服务器上的数据库中。SQL线程的工作方式如下:

SQL线程从中继日志中读取SQL语句。

SQL线程执行SQL语句,并将结果写入从服务器上的数据库中。

SQL线程周期性地向主服务器发送心跳包,以确保主从服务器之间的连接正常。

如果主服务器发生故障,从服务器可以自动切换到另一个主服务器(即主服务器的备份服务器)。

        通过I/O线程和SQL线程的协作,从服务器可以将主服务器上的数据复制到本地,并保持与主服务器上的数据一致。

主库配置

开放端口/关闭防火墙

首先在服务器上均需要开放MySQL的端口,为了让别的服务器进行访问。这里有两种方法:

第一种:开放指定端口,并且重新加载防火墙

firewall-cmd --zone=public --add-port=3306/tcp -permanentfirewall-cmd -reload

第二种:关闭防火墙,并且禁止开机自启

systemctl stop firewalldsystemctl disable firewalld

修改配置文件

vim /etc/my.cnf

# 服务id 用来保证整个集群环境的唯一性 取值范围[1,2^32 - 1] 默认为1server-id=1# 是否可读:0可读可写 1只读read-only=0# 二进制文件的命名log-bin=master-bin# 二进制索引文件的命名log-bin-index=master-bin.index# 忽略的数据 表示不需要同步的数据库# binlog-ignore-db=mysql# 指定同步的数据库# binlog-do-db=test

重启MySQL

systemctl restart mysqld

创建账号

必须先登录MySQL,在里面执行代码

# 创建ovo用户 设置其密码 并且使该用户可在任意主机连接该MySQL服务CREATE USER 'ovo'@'%' IDENTIFIED WITH mysql_navive_password BY 'OvO@123456';# 为该用户分配主从复制权限GRANT REPLICATION SLAVE ON *.* TO 'ovo'@'%';

查询binlog坐标

这也是在MySQL服务中的代码

SHOW MASTER STATUS;

表中会有五个字段

File:从哪个日志文件开始推送日志文件

Position:从哪个位置开始推送日志

Binlog_Do_DB:指定需要同步的数据库

Binlog_Ignore_DB:指定不需要同步的数据库

Executed_Gtid_set

从库配置

修改配置文件

vim /etc/my.cnf

server-id=2read-only=1relay-bin=slave-relay-binrelay-bin-index=slave-bin.index

重启MySQL

systemctl restart mysqld

设置主库

登录MySQL,若MySQL版本大于等于8.0.23则执行

CHANGE REPLICATION SOURCE TO SOURCE_HOST='主库IP',SOURCE_USER='主库用户名',SOURCE_PASSWORD="主库密码",SOURCE_LOG_FILE='binlog文件名',SOURCE_LOG_POS='binlog文件位置'

MySQL版本小于8.0.23执行

CHANGE MASTER TO MASTER_HOST='主库IP',MASTER_USER='主库用户名',MASTER_PASSWORD="主库密码",MASTER_LOG_FILE='binlog文件名',MASTER_LOG_POS='binlog文件位置'

注意:关于binlog的文件名与文件位置在主库配置的最后一步中可以查看:

SHOW MASTER STATUS;

执行同步

MySQL版本8.0.22之前

start slave;

MySQL版本8.0.22之后

start replica;

查看主从同步状态

 MySQL版本8.0.22之前

show slave status;

MySQL版本8.0.22之后

show replica status;

来源地址:https://blog.csdn.net/m0_65563175/article/details/130914553

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【MySQL】主从复制(两台服务器)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何将表或数据库从一台MySQL服务器复制到另一台MySQL服务器?

如果我们要将表或数据库从一台 MySQL 服务器复制到另一台 MySQL 服务器,请使用带有数据库名称和表名称的 mysqldump 。 在源主机上运行以下命令。这会将完整的数据库转储到dump.txt 文件中。$ mysqldump -u
2023-10-22

scp 将数据从一台linux服务器复制到另一台linux服务器

scp 是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且 scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only s
2022-06-04

MySQL配置主从服务器(一主多从)

目录思路主机配置修改conf重启检验从机1配置从机2配置配置主从关联测试数据同步常见问题原因解决方案本文主要介绍了MySQL配置主从服务器(一主多从),感兴趣的可以了解一下当前环境 Centos 7.6 Mysql 5.7Centos 7.
2022-05-21

scp如何将数据从一台linux服务器复制到另一台linux服务器

这篇文章主要介绍scp如何将数据从一台linux服务器复制到另一台linux服务器,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!scp 是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类
2023-06-09

本地windows安装两个mysql服务器,配置主从同步

目录一、配置两个mysql服务器1.首先安装mysql2.复制安装后的目录3.安装服务4. 开启服务5. 停止服务二、设置主从配置:大型网站为了缓解大量的并发访问,除了在网站实现分布式负载均衡,还会搭建服务器mysql集群技术,来分担主数据
2022-12-14

两台云服务器集群成一台主机可以吗

是的,两台云服务器集群成一台主机可以。这可以通过使用多台云服务器来实现,每一台云服务器都可以作为独立的主机,同时运行其他的服务或应用程序。这种技术通常用于大型数据中心,以确保高可用性和高性能。此外,您还可以通过使用多台云服务器来实现负载均衡,以确保在多个主机之间分配高性能的服务负载,并在单一主机出现故障时提供快速的故障恢复能力。总之,选择两台云服务器集群成一台主机可以确保您的应用程序在多个主
2023-10-26

两台云服务器集群成一台主机怎么办

如果您想将两台云服务器组成集群,可以按照以下步骤操作:将服务器连接到集群中的主服务器上:在主服务器上启动两台服务器,将其连接在一起,然后将其配置为双机热备或双机互备。启动集群:将所有主服务器连接在一起,并启动两台服务器,以便在需要时自动切换。管理并设置集群:使用集群管理器来管理集群。您可以创建一个集群来存储数据、运行服务、部署应用程序等等。监控集群:使用监控工具来监控并分析集群的性能和
2023-10-26

MySQL容器部署及数据持久化(主从复制)

作者:王少鹏(老A),中国开源协会(oscna.org)数据库分会成员,现就职于上海某MySQL数据库厂商。 本文来源:鸡书之家(dbawsp.com)出品,转载请注明来源,谢谢。 运维经常要和数据库打交道,尤其是MySQL,以前的方式是在本机装个MySQL
MySQL容器部署及数据持久化(主从复制)
2018-01-24

两台云服务器集群成一台主机怎么设置

如果您只有一台主机,并且希望在同一台云服务器上运行多个应用程序和服务,您可以采取以下步骤:将数据从同一台主机转移到其他主机上:您可以将所有应用程序和数据从同一台主机上转移到另一个云服务器上。这可以通过在云服务器上创建虚拟私有数据中心,将数据存储到数据中心中以及使用多个主机来实现。设置共享存储和网络连接:您可以使用相同的共享存储和网络连接来管理多个应用程序和服务。这些资源可以共享给其他服务,
2023-10-26

两台云服务器集群成一台主机怎么办啊

如果您想将两台云服务器组成集群,可以按照以下步骤操作:确定哪两台云服务器是您想使用的。这可以根据您选择的操作系统和硬件来确定。例如,您可以选择将这两台服务器连接在同一个网络上,或者在不同的位置设置它们的IP地址和端口号。创建主机集群。使用MicrosoftCloudStacks等云服务,可以创建一个主机集群,将这些服务器连接在一起。您需要指定云服务器的IP地址、端口号和配置参数等信息。可以使用MicrosoftWindows或MacOS...
2023-10-27

mysql主从服务器如何设置

这篇“mysql主从服务器如何设置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysql主从服务器如何设置”文章吧。1.简
2023-02-14

两台云服务器集群成一台主机怎么设置密码

如果您的两台云服务器集群是使用相同的密码,您可以按照以下步骤来设置密码:将两台云服务器集群连接到公共的网络连接中。确保您已启用VPN连接,以确保您已经连接到了您想要共享的服务器上。登录到云服务器的管理界面,将其中一台云服务器的用户名和密码输入到控制台中。然后按下“保存”按钮。保存后,您可以在管理界面中看到刚才的用户名和密码。您可以单击登录按钮进入管理界面。在新的管理界面中,您可以看到两台云服务器集群的密...
2023-10-27

两台云服务器集群成一台主机可以吗安全吗

如果您想将两台云服务器组成集群,可以将其中一台云服务器作为主机来运行,另一台作为备份。这样可以确保云服务器的安全和可用性,使它们可以在单个服务器出现故障时继续运行。此外,您还可以选择使用多台云服务器,并将其放置在不同的地理位置,如海外或本地。这样可以确保数据的安全,并减少由于云服务器故障或其他原因而导致数据丢失或损坏的风险。总的来说,使用云服务器集群可以带来更高的可靠性和可扩展性,并降低了维护和管理大型数据...
2023-10-27

编程热搜

目录