当前位置: 首页 > article >正文

作业四:简述mysql 主从复制原理及其工作过程,配置一主两从并验证。

主从原理:MySQL 主从同步是一种数据库复制技术,它通过将主服务器上的数据更改复制到一个或多个从服务器,实现数据的自动同步。

主从同步的核心原理是将主服务器上的二进制日志复制到从服务器,并在从服务器上执行这些日志中的操作。

1.基于binlog的主从同步

准备三台虚拟机192.168.1.100(Mater),192.168.1.110(slave-1)和192.168.1.120(slave-2)

192.168.1.100(Mater)

#编辑配置文件

[root@master ~]# vim /etc/my.cnf
server_id=100#设置id为100

#重新启动mysql

[root@master ~]# systemctl restart mysqld.service

#关闭防火墙

[root@master ~]# systemctl stop firewalld

#建立用户repl@'%'使用远程连接

mysql> create user repl@'%' identified with mysql_native_password by 'Abc1234+';

#确保每台SLAVE都能连得上MASTER

mysql> grant replication slave on *.* to repl@'%';

#查看日志文件名

mysql> SHOW MASTER status;

192.168.1.110(slave-1)

#编辑配置文件

[root@slave1 ~]#vim /etc/my.cnf
server_id=110#设置id为110

#重新启动mysql

[root@slave1 ~]#systemctl restart mysqld.service

#关闭防火墙

[root@slave1 ~]# systemctl stop firewalld

#与Master(192.168.1.100主机)建立连接

mysql> change master to
    -> master_host='192.168.1.100',
    -> master_user='repl',
    -> master_password='Abc1234+',
    -> master_log_file='binlog.000001',
    -> master_log_pos=690;

mysql> start slave;

#同步功能成功开启

mysql> show slave status\G;

192.168.1.120(slave-2)

#编辑配置文件

[root@slave2 ~]#vim /etc/my.cnf
server_id=120#设置id为120

#重新启动mysql

[root@slave2 ~]#systemctl restart mysqld.service

#关闭防火墙

[root@slave2 ~]# systemctl stop firewalld

mysql> change master to
    ->  master_host='192.168.1.100',
    -> master_user='repl',
    -> master_password='Abc1234+',
    -> master_log_file='binlog.000001',
    -> master_log_pos=690;

mysql> start slave;

mysql> show slave status\G;

测试:

当在192.168.1.100主机上创建timinglee库,timinglee.userlist表。

mysql> create database timinglee;
 

mysql> use timinglee;

mysql> create table timinglee.userlist(username varchar(10) not null,password varchar(50)   not null);
 

mysql> INSERT INTO timinglee.userlist values('lee','123');

mysql> show databases;

192.168.1.110和192.168.1.120主机的数据库上同时创建timinglee库,timinglee.userlist表。

2.基于gtid的主从同步

192.168.1.100(Mater)

#开启gtid

[root@master Mysql]# vim /etc/my.cnf
gtid_mode=ON
enforce-gtid-consistency=ON

#开启MySQL
[root@master Mysql]# systemctl restart mysqld.service

192.168.1.110和192.168.1.120

#同理开启gtid

[root@slave1 ~]# vim /etc/my.cnf
gtid_mode=ON
enforce-gtid-consistency=ON
[root@slave1 ~]# systemctl restart mysqld.service

[root@slave2 ~]# vim /etc/my.cnf
gtid_mode=ON
enforce-gtid-consistency=ON
[root@slave2 ~]# systemctl restart mysqld.service

mysql> change master to
    -> master_host='192.168.1.100',
    -> master_user='rep',
    -> master_password='Abc1234+',
    -> master_auto_position=1;
 

mysql> start slave;

mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_USER='repl',MASTER_PASSWORD='Abc1234+', MASTER_AUTO_POSITION=1;

mysql> start slave;


http://www.kler.cn/a/521462.html

相关文章:

  • 实验八 JSP访问数据库
  • WGCLOUD服务器资源监控软件使用笔记 - Token is error是什么错误
  • Nuxt:利用public-ip这个npm包来获取公网IP
  • python编程环境安装保姆级教程--python-3.7.2pycharm2021.2.3社区版
  • Sqoop源码修改:增加落地HDFS文件数与MapTask数量一致性检查
  • Visual Studio使用GitHub Copilot提高.NET开发工作效率
  • 科普篇 | “机架、塔式、刀片”三类服务器对比
  • 理解离散傅里叶变换(三.复数) 2025 1 26
  • leetcode 2412. 完成所有交易的初始最少钱数
  • 【前端】Electron入门开发教程,从介绍Electron到基础引用以及部分深度使用,附带常见的十个报错问题的解决方案和代码优化。
  • 【自然语言处理(NLP)】从零实现循环神经网络RNN、Pytorch实现循环神经网络RNN
  • 消息队列篇--通信协议篇--MQTT(通配式主题,消息服务质量Qos,EMQX的Broker,MqttClient示例,MQTT报文等)
  • 强化学习 - 基于策略搜索和策略优化: 高斯策略
  • 【Redis】Redis入门以及什么是分布式系统{Redis引入+分布式系统介绍}
  • RKNN_C++版本-YOLOV5
  • UE求职Demo开发日志#12 完善击杀获得物品逻辑和UI
  • 论文阅读 AlphaFold 2
  • 高效流式大语言模型(StreamingLLM)——基于“注意力汇聚点”的突破性研究
  • 25_.NET控制台服务器配置
  • 人物轮廓提取与人脸识别:原理、实现与应用
  • 论文阅读(五):乳腺癌中的高斯图模型和扩展网络推理
  • 广东某海水取排水管线工程边坡自动化监测
  • LeetCode | 不同路径
  • Java:初识Java
  • 【由浅入深认识Maven】第4部分 maven在持续集成中的应用
  • Day41:列表的切片