一、MySQL的下载流程

https://dev.mysql.com/downloads/mysql/





二.实验环境
两台7版本的虚拟机+一台7版本的真机

主机信息 主机的功能
server1(172.25.254.1) 数据库的master节点
server2(172.25.254.2) 数据库的slave节点
真机(172.25.254.66) 测试
三、解压安装运行数据库
删除没有用的,最终只有5个rpm包


数据库安全初始化
安全初始化登陆的时候使用的是临时密码,接下来要自己设置数据库的密码

[root@server1 ~]# mysql -uroot -paSD+1-3F=1*



server2安装MySQL数据库与server1相同操作

[root@server1 ~]# scp *.rpm server2:
The authenticity of host 'server2 (172.25.254.2)' can't be established.
ECDSA key fingerprint is SHA256:XDLC0AUVlscTbqrY4SGynWQkRJDKpxnFbco1duv+xFY.
ECDSA key fingerprint is MD5:3b:8e:96:dd:92:ff:e1:aa:db:eb:0c:51:00:62:22:1e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server2,172.25.254.2' (ECDSA) to the list of known hosts.
root@server2's password:
mysql-community-client-5.7.28-1.el7.x86_64.rpm                                                                                                             100%   43MB  44.9MB/s   00:00
mysql-community-common-5.7.28-1.el7.x86_64.rpm                                                                                                             100%  311KB  42.2MB/s   00:00
mysql-community-libs-5.7.28-1.el7.x86_64.rpm                                                                                                               100% 4272KB  31.8MB/s   00:00
mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm                                                                                                        100% 1322KB  37.1MB/s   00:00
mysql-community-server-5.7.28-1.el7.x86_64.rpm

配置主从节点,启用复制
mysql的主从配置又叫replication,AB复制,基于binlog二进制日志,主数据库必须开启binlog二进制日志才能进行复制
主节点(master)写入数据,从节点(selave)复制
主从复制的要求:
(1)主库开启binlog日志(设置log-bin参数)
(2)主从server-id不同
(3)从库服务器能连同主库

[root@server1 ~]# vim /etc/my.cnf开始配置主节点数据库
最后面写入:
log-bin=mysql-bin  使用MySQL-bin日志
server-id=1(每个节点的序号是唯一的)
[root@server1 ~]# systemctl restart mysqld


创建用户并授权
master节点上设置(server1)

CREATE USER 'repl'@'172.25.12.%' IDENTIFIED BY 'Yan+123kou';创建用户,可以使用此用户远程登录数据库
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.25.12.%';授权为可以复制master节点数据的slave节点
flush privileges;刷新
show master status;查看master节点的状态





|REPLICATION|表示复制的权限|
|* .* |表示对所有库的所有表都授权|
|repl |用户名|
|‘172.25.12.%’ |授权172.25.12网段的所有数据库节点都可以同步(复制)|

server2主机上设置

[root@server2 ~]# vim /etc/my.cnf
[root@server2 ~]# systemctl restart mysqld


主机上测试master节点是否配置好

mysql -h 172.25.12.1 -urepl -pYan+123kou  登录数据库

看能否登录查看数据库(可以登录,但是没有查看的权限)

server2(slave节点)主机上面进行配置

设置mysql的主从复制:
mysql> CHANGE MASTER TO在这个slave节点上面设置管理它的master节点-> MASTER_HOST='172.25.254.1',主机信息--主库的ip地址-> MASTER_USER='repl',用户--主库的用户-> MASTER_PASSWORD='aSD+1-3F=1*',密码--主库用户的密码-> MASTER_LOG_FILE='mysql-bin.000001',基于position的主从复制的重要信息--主库的日志文件-> MASTER_LOG_POS=697;基于position的主从复制的重要信息--主库的状态码
start slave;开启本节点的slave--开启从库
show slave status\G;查看slave节点的状态


 Slave_IO_Running: YesSlave_SQL_Running: Yes
可以看到的当前两个进程都是yes,表示主库和从库的数据一致
对于slave节点io线程和SQL线程是最重要的,
一个i/o线程,一个SQL线程,i/o线程去请求主库的binlog,sql线程进行日志回放来复制
只有当着两个线程开启,slave节点才能正常复制master的数据


master节点创建数据建立表格(server1)


在server2(slave节点上)查看数据是否同步

到此为止:异步复制(基于position的主从复制)已经完成,实验效果已经达到数据复制。

可以使用mysqlbinlog  mysql-bin.000001查看日志(/var/lib/mysql/日志存放地址)
日志内容都是每次操作的记录,每一步都要一个id号
基于position的主从复制容易因为master一个事件的中断而造成数据丢失而不能复制

主从复制不是复制数据库,而是复制操作即把在master节点的操作在slave节点重新执行一遍
三、Mysql的异步复制(基于gtid的主从复制)
什么是GTID?
1、全局唯一,一个事务对应一个GTID
2、替代传统的binlog+pos复制;使用master_auto_position=1自动匹配GTID断点进行复制
3、MySQL5.6开始支持
4、在传统的主从复制中,slave端不用开启binlog;但是在GTID主从复制中,必须开启binlog
5、slave端在接受master的binlog时,会校验GTID值
6、为了保证主从数据的一致性,多线程同时执行一个GTID
开启GTID,无需找到binlog和POS点,直接change master to master_auto_postion=1即可,它会自动寻找同步
GTID工作流程
在master上一个事务提交,并写入binlog里。
binlog日志发送到slave,slave接收并写入中继日志里,slave读取到这个GTID,并设置gtid_next的值。例如
set @@session。gtid_next=’=fbd841f9-5590-11e8-b819-000c29e6461e’;
然后告诉slave接下来的事务必须使用GTID,并写入它自己的binlog里。
slave检查并确认这个GTID没有被使用,如果没有被使用,那么开始执行这个事务并写入自己的binlog里
由于gtid_next的值不为空,slave不会尝试去生成一个新的gtid而是通过主从同步来获取GTID
实验环境

基于position的主从复制的基础上进行实验操作
基于gtid的主从复制不容易因为master一个事件的中断而造成数据丢失而不能复制

开启gtid的信息

vim /etc/my.cnf
systemctl restart mysqld



在server2上



server1上创建三个用户

server2上查看复制的数据


Mysql的主从复制,基于position的主从复制(二进制日志文件位置的复制)和基于gtid的主从复制相关推荐

  1. 3:添加一个slave到已有的复制环境(基于二进制日志文件位置)

    服务器 192.168.1.2 (master) ,服务器 192.168.1.3 (old slave) 服务器 192.168.1.4 (new slave) 您可以将另一个slave添加到现有复 ...

  2. MySQL8.0安装与基于二进制日志文件位置的主从复制

    一.MySQL8.0安装 安装环境: CentOS7.6 64位 关闭防火墙,禁用selinux 安装步骤: (1)下载MySQL8.0的repo源 cd /tmp wget https://dev. ...

  3. mysql二进制日志文件差不多_mysql数据同步-基于二进制日志文件和position复制点的方式...

    mysql的binlog日志有三种格式,分别为statement,mixed,以及row. 1.Statement:每一条会修改数据的sql都会记录在binlog中 优缺点:1)不用记录每一行的变化, ...

  4. mysql dba系统学习(5)二进制日志binlog之一

    一,二进制日志文件的作用 Mysql的二进制日志记录的是所有mysql数据库发生变更的信息,因此对数据库非常重要,二进制日志的作用我概括了一下主要包含如下几个方面: 1.可以用于数据库基于时间点的还原 ...

  5. 天堂2启动mysql就没了_启用二进制日志文件进行mysql数据恢复

    启用二进制日志文件进行mysql数据恢复 查看文件/etc/my.cnf中[mysqld]配置块的是否配置log-bin 项,用来记录数据库更改的日志, 然后设置要需要写入日志的数据库或者不要写入日志 ...

  6. mysql 二进制日志 解析c++_mysql二进制日志文件恢复数据库

    二进制日志的文件的作用 mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句.如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所 ...

  7. mysql二进制日志被删除无法启动_mysql二进制日志文件出错导致mysql服务无法启动...

    今天打开phpmyadmin发现连不上mysql数据库,重启mysql启动不起来,查看日志发现如下错误 mysqld: File '.\mysql-bin.000370' not found (Err ...

  8. mysql dba系统学习(7)二进制日志binlog之三

    二进制日志的相关系统变量 1,binlog_cache_size和max_binlog_cache_size 表示的为每个session的事物分配的缓存 一般的当插入或者修改数据的时候,不会立刻写磁盘 ...

  9. MySQL二进制日志文件的用法_数据恢复

    文章目录 开启二进制日志功能 关闭/打开二进制日志记录 刷新二进制日志文件 查看二进制日志文件的存储位置 利用二进制日志文件恢复数据的本质 二进制日志提取/导出到脚本文件中 查看当前二进制日志的最后一 ...

最新文章

  1. Spring 面试问题
  2. Android EditText回车不换行
  3. python快速自学方式-Python怎样自学?
  4. Python 正则表达式 匹配任意字符
  5. 亚马逊给创业者5条建议:开会杜绝PPT
  6. 完整的一次 HTTP 请求响应过程(二)
  7. boost::iterator_range相关的测试程序
  8. 操作系统:UNIX、Linux、IOS、Android之间的渊源
  9. 无论做哪种演示红色警戒
  10. Spring框架学习笔记01:初探Spring——采用Spring配置文件管理Bean
  11. 一定不要安装CUDA附带的显卡驱动
  12. java窗口设计_java简单窗口设计(源代码)
  13. Gestalt laws
  14. 领域划分的规则是什么?
  15. 感染神经网络模型的病毒 AI malware EvilModel: Hiding Malware Inside of Neural Network Models
  16. 网络舆情信息工作怎么做的解决方案
  17. 【快代理】独享代理使用教程
  18. Unity3D-iOS创建本地视频
  19. 学完3D游戏建模,为什么我找到的工作薪资这么低?
  20. 论人工智能历史、现状与未来发展战略

热门文章

  1. 城联优品作为新力量初注入,相关上市公司股价应声上涨150%
  2. 乙醇的selenium java_Selenium 面试题总结(乙醇Blog记录的面试题)
  3. 【组图】宝马车主 嚣张打伤路人 围观市民群情激愤砸车
  4. Primavera P6 EPPM R8.3.X Patch/Update(补丁/更新)
  5. lua语言xml的解析
  6. Windows XP 基本操作
  7. 关于就业指导和职业规划
  8. PHP反射类ReflectionClass、异常处理Exception
  9. Python|函数递归-sin之舞
  10. 用FOXIT READER打开pdf居然全是是乱码?