mysql通过binlog日志复制主从同步的实现

 更新时间:2024年05月29日 09:40:39   作者:天涯kk  
本文主要介绍了mysql通过binlog日志复制主从同步的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

主从复制binlog日志方式

量大的时候使用GTID效率更高,维护起来比较麻烦

有了主从同步也要做备份(双保险,本地有一份,主从同步也有一份 )

1、准备环境两台机器,关闭防火墙和selinux。---两台机器环境必须一致。时间也得一致
10.36.107.10 mysql-master
10.36.107.11  mysql-slave
2、两台机器安装mysql5.7(略)建议使用相同的安装方式
注意:
对主库已有的数据库不会进行自动同步。
主从同步之前,对主库上已有数据库备份,并在从库上导入同步。


1.开始配置主服务
在主服务器上添加配置
vim /etc/my.cnf 
[mysqld]
log-bin=/usr/local/mysql/logs/mysql-bin/mylog
server-id=1
重启服务
systemctl restart mysqld

在从服务器上添加配置
[mysqld]
server-id=2
重启服务
systemctl restart mysqld

在主服务器上 创建日志目录并赋予权限
[root@mysql-master ~]# mkdir /usr/local/mysql/logs/mysql-bin/mylog
[root@mysql-master ~]# chown mysql:mysql /usr/local/mysql/logs/mysql-bin/mylog

2.在主服务器上查看binlog以及POS
mysql> show master status \G; 194
3.给主库授权 创建主从同步的用户:(只设置一个复制权限就可以了 slave )
mysql> grant replication slave on *.*  to 'repl'@'%' identified by 'Qf@12345!';
mysql> flush privileges;
查看状态 状态码会发生变化
mysql> show master status \G; 629

3在从服务器上
从库重设#全在从库执行(断开于主库之间的通信,脱离主从关系)
mysql> stop slave;
mysql> reset slave;
mysql> reset master;
查看状态 状态码会发生变化
mysql> show master status \G; 


(执行这条命名发现登录不上 就重启一下 systemctl stop mysqld
systemctl start mysqld  mysql然后在登录,因为之前做过GTID残留)
mysql> change master to
master_host='192.168.171.15',
master_user='repl', 
master_password='Qf@12345!', 
master_log_file='/usr/local/mysql/bin-log/binlog.000002',
master_log_pos=2625;

find / -name "binlog.000002" 查找binlog的绝对路径
/usr/local/mysql/bin-log/binlog.000002



启用从库身份
mysql> start slave;
查看状态
mysql> show slave status\G;
#查看状态,验证sql和IO是不是yes。

在主服务器创建数据库a2
mysql> create database a2;
在从服务器上进行查看a2
mysql> show databases;

在主服务器删除数据库a2
mysql> drop databases a2;
在从服务器上进行查看a2也删除了
mysql> show databases;

开启只读模式
查看是否只读模式:show variables like 'read_only';

关闭只读模式
vim /etc/my.cnf
read-only=1
并重启mysql服务
systemctl restart mysqld

故障切换

mysql主从,master宕机,如何进行切换?
主机故障或者宕机:
1)在salve执行:
mysql> stop slave;
mysql> reset master;
2)查看是否只读模式:show variables like 'read_only';
只读模式需要修改my.cnf文件,注释read-only=1并重启mysql服务。
或者不重启使用命令关闭只读,但下次重启后失效:set global read_only=off;
3)查看show slave status \G;
4)在程序中将原来主库IP地址改为现在的从库IP地址,测试应用连接是否正常

查看uuid号码

[root@localhost ~]# vim /usr/local/mysql/data/auto.cnf
[auto]
server-uuid=4f37a731-9b79-11e8-8013-000c29f0700f
修改uuid并重启服务

重设从库

主库查看binlog,pos
mysql> show master status \G;
*************************** 1. row ***************************
             File: mylog.000003
         Position: 348
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
1 row in set (0.00 sec)

从库上操作
mysql>stop slave;
mysql>reset slave;
mysql>reset master; 
#从库的binlog已经无效了,所以要执行这个命令清空binlog
CHANGE MASTER TO
MASTER_HOST='10.36.107.10',
MASTER_USER='slave',
MASTER_PASSWORD='Qf@12345!',
MASTER_LOG_FILE='mylog.000003',
MASTER_LOG_POS=348;
mysql> start slave;
mysql> show slave status\G;

到此这篇关于mysql通过binlog日志复制主从同步的实现的文章就介绍到这了,更多相关mysql binlog日志复制主从同步内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 详解MySQL性能优化(二)

    详解MySQL性能优化(二)

    本文对MySQL性能优化进行了详细的总结与介绍,需要的朋友可以参考下
    2015-08-08
  • SQL中实现SPLIT函数几种方法总结(必看篇)

    SQL中实现SPLIT函数几种方法总结(必看篇)

    下面小编就为大家带来一篇SQL中实现SPLIT函数几种方法总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • 解决Can''t locate ExtUtils/MakeMaker.pm in @INC报错

    解决Can''t locate ExtUtils/MakeMaker.pm in @INC报错

    今天小编就为大家分享一篇关于解决Can't locate ExtUtils/MakeMaker.pm in @INC报错,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 关于Mysql中json数据类型的查询操作指南

    关于Mysql中json数据类型的查询操作指南

    mysql在5.7版本之后就开始支持json数据类型,并且mysql8.0版本对json的处理已经做的非常完善了,json数据类型的优点缺点可自己查询,本文主要介绍一些关于json数据类型的查询操作
    2023-07-07
  • MySQL——修改root密码的4种方法(以windows为例)

    MySQL——修改root密码的4种方法(以windows为例)

    本文以windows为例为大家详细介绍下MySQL修改root密码的4种方法,大家可以可以根据的自己的情况自由选择,希望对大家有所帮助
    2013-07-07
  • MySQL多线程复制遇到Error_code: 1872的解决方案

    MySQL多线程复制遇到Error_code: 1872的解决方案

    本文给大家分享的是在使用mysql主从复制的时候遇到Error_code: 1872错误的解决方法,非常的简单,有需要的小伙伴可以参考下
    2016-09-09
  • mysql日志文件之undo log和redo log

    mysql日志文件之undo log和redo log

    MySQL日志记录了MySQL数据库日常操作和错误信息,MySQL有不同类型的日志文件,下面这篇文章主要给大家介绍了关于mysql日志文件之undo log和redo log的相关资料,需要的朋友可以参考下
    2022-04-04
  • MySQL 5.7中的关键字与保留字详解

    MySQL 5.7中的关键字与保留字详解

    最近在将数据从Oracle迁移到MySQL的过程中,遇到一些问题,其中就包括关键字。下面这篇文章主要给大家介绍了MySQL 5.7中的关键字与保留字的相关资料,文中介绍的非常详细,需要的朋友可以参考学习,下面来一起看看吧。
    2017-03-03
  • MySQL需要关注的参数及状态变量解读

    MySQL需要关注的参数及状态变量解读

    这篇文章主要介绍了MySQL需要关注的参数及状态变量解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 简单了解标准SQL的update语句三种用法

    简单了解标准SQL的update语句三种用法

    这篇文章主要介绍了简单了解标准SQL的update语句三种用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06

最新评论