MySQL 主从复制

这篇具有很好参考价值的文章主要介绍了MySQL 主从复制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、概念介绍

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

MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。

MySQL 主从复制,MySQL,mysql,数据库

MySQL复制的有点主要包含以下三个方面:

  • 主库出现问题,可以快速切换到从库提供服务。
  • 实现读写分离,降低主库的访问压力。
  • 可以在从库中执行备份,以避免备份期间影响主库服务。

MySQL的主从复制原理:

  • Master主库在事务提交时,会把数据变更记录在二进制日志文件Binlog 中。
  • 从库读取主库的二进制日志文件Binlog,写入到从库的中继日志Relay Log 。
  • slave重做中继日志中的事件,将改变反映它自己的数据。

MySQL 主从复制,MySQL,mysql,数据库

2、主库配置
a. 配置防火墙
# 开放指定的3306端口号(生产环境):
firewall-cmd--zone=public --add-port=3306/tcp -permanent
firewall-cmd -reload

# 关闭服务器的防火墙(本次采用关闭防火墙):
systemctl stop firewalld
systemctl disable firewalld
b. 修改 /etc/my.cnf
# mysql服务ID,保证整个集群环竟中唯一,取值范围:1 - 2^32 - 1,默认为1
server-id=1
# 是否只读,1代表只读,0代表读写
read-only=0
# 设置二进制日志文件
log_bin=binlog

#忽略的数据,指不需要同步的数据库
#binlog-ignore-db=mysql
#指定同步的数据库
#binlog-do-db=db01


# 重启服务
systemctl restart mysqld
c. 创建用户、赋予权限

登录mysql,创建远程连接的账号,并授予主从复制权限

-- 创建itcast用户,并设置密码,该用户可在任意主机连接该MySQL服务
create user 'itcast'@'%' identified with mysql_native_password by 'Root@123456';

-- 为‘itcast'@'%'用户分配主从复制权限
grant replication slave on *.* to 'itcast'@'%';
d. 查看二进制日志坐标
show master status;

MySQL 主从复制,MySQL,mysql,数据库

字段含义说明:

  • file:从哪个日志文件开始推送日志文件
  • position : 从哪个位置开始推送日志
  • binlog_ignore_db :指定不需要同步的数据库
3、从库配置
a. 配置防火墙
# 开放指定的3306端口号(生产环境):
firewall-cmd--zone=public --add-port=3306/tcp -permanent
firewall-cmd -reload

# 关闭服务器的防火墙(本次采用关闭防火墙):
systemctl stop firewalld
systemctl disable firewalld
b. 修改 /etc/my.cnf
# 保证整个集群环竟中唯一,取值范围:1 - 2^32 - 1,和主库不相同
server-id=2
# 是否只读,1代表只读,0代表读写
read-only=1


# 重启服务
systemctl restart mariadb
c. 登录mysql,设置主库配置
-- mysql 8.0.26 以后
change replication source to source_host='192.168.137.252',source_user='test1',source_password='123456',source_log_file='binlog.000001',source_log_pos=245;
-- mysql 8.0.26 之前
change master to master_host='192.168.137.252',master_user='test1',master_password='123456',master_log_file='binlog.000001',master_log_pos=245;

MySQL 主从复制,MySQL,mysql,数据库

d. 开启同步操作
#8.0.22之后
start replica;

#8.0.22之前
start slave;


-- 查看主从同步状态
show replica status; 	-- 8.0.22之后
show slave status; 		-- 8.0.22之前

MySQL 主从复制,MySQL,mysql,数据库

测试:在主数据库创建数据,在从库中查询数据,验证主从是否同步。文章来源地址https://www.toymoban.com/news/detail-816024.html

到了这里,关于MySQL 主从复制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 实现↝Mysql数据库主从复制搭建与同步

    一般数据库都是读取压力大于写数据压力,主从复制即为了实现数据库的负载均衡和读写分离。通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,主服务器只负责写,而从服务器只负责读。 如生产环境中,使用redis数据库作为缓存数据库,用户访问业务数据时,先

    2024年02月10日
    浏览(56)
  • 【数据库七】MySQL主从复制与读写分离

    读写分离,基本的原理是让主数据库处理事务性增、改、删操作 (insert、update、delete),而 从数据库处理select查询操作 。 数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库 。 因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。 但是数据

    2024年02月11日
    浏览(59)
  • Mysql数据库--实现主从复制搭建与同步

    一般数据库都是读取压力大于写数据压力,主从复制即为了实现数据库的负载均衡和读写分离。通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,主服务器只负责写,而从服务器只负责读。 如生产环境中,使用redis数据库作为缓存数据库,用户访问业务数据时,先

    2024年02月08日
    浏览(62)
  • 第90讲:MySQL数据库主从复制集群原理概念以及搭建流程

    1.1.什么是主从复制集群 主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主

    2024年01月20日
    浏览(56)
  • MySQL高级第十七篇:数据库主从复制原理及保证数据一致性

    在实际工作中,我们常常将Redis作为缓存与MySQL来配合使用,当有请求的时候,首先会从缓存中进行查找,如果存在就直接取出,如果不存在再访问数据库。 这样就提升了读取的效率,也减少了对后端数据库的访问压力。 此外,对于一般数据库应用而言,都是 读多写少 的,

    2023年04月25日
    浏览(77)
  • MySQL数据库实现主从同步

    安装MySQL数据库8.0.32 今天来学习数据库主从同步的原理及过程,数据库主要是用来存储WEB数据,在企业当中是极为重要的,下面一起来看下。 MySQL主从复制在中小企业,大型企业中广泛使用,MySQL主从复制的目的是实现数据库冗余备份,将master数据库数据定时同步到slave数据库

    2024年02月02日
    浏览(59)
  • Mysql主从数据库搭建(一主两从)

    目录 1、服务器规划 2、主从同步流程 3、主从搭建 3.1、master节点上配置文件修改 3.2、master节点创建同步用户和权限 3.3、slave1和slave2节点配置文件修改 3.4、slave1和slave2节点执行同步任务 3.5、解决虚拟机克隆导致mysql所有服务器uuid都一样的问题 4、bin-log相关说明 5、主从同步注

    2024年02月11日
    浏览(47)
  • Docker 容器搭建mysql 集群(主从数据库)

    目录 1.背景         2.设备及软件版本 3.开始搭建(这里不介绍安装docker及mysql) 3.1创建主数据库容器(master) 3.2查看容器是否创建成功 3.3进入修改容器下的/etc/my.cnf文件 3.3.1先拷贝my.cnf到容器外修改完再覆盖容器原来的my.cnf文件 3.4重启mysql容器使配置文件生效 3.5查看是否

    2024年02月08日
    浏览(101)
  • Linux系统中MySQL 数据库的主从同步

    在主数据库服务器上配置: 编辑主数据库服务器的配置文件(my.cnf) : 打开 MySQL 配置文件,一般路径为 /etc/my.cnf 或 /etc/mysql/my.cnf。 确保以下参数已启用或配置正确: 注: 一定是[mysqld]代码块中 创建用于复制的用户 : 登录到 MySQL 控制台: mysql -u root -p 创建用于复制的用户

    2024年03月23日
    浏览(58)
  • 基于docker搭建MySql主从数据库(详细步骤)

    在 Linux 中建立对应文件夹,用于存放MySql数据库相关,文件夹路径: /usr/local/software/mysql 。 在mysql文件下创建如下目录结构的文件:(3306为主数据库文件夹,笔者这里以对端口号来命名;3310为从数据库文件夹,3311同理,可依次往下) 上传 my.cnf 文件到 conf 文件夹下 以下是

    2024年02月09日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包