博客
关于我
Mysql5.6主从复制-基于binlog
阅读量:790 次
发布时间:2023-02-11

本文共 1899 字,大约阅读时间需要 6 分钟。

MySQL主从复制基于日志的配置步骤

环境配置

  • Master数据库IP:192.168.247.128
  • Slave数据库IP:192.168.247.130
  • MySQL版本:5.6.14

1. 修改Master配置文件并重启服务

修改Master的配置文件文件(通常位于 /etc/my.cnf~/.my.cnf)中相关参数:

[mysqld]server_id=1binlog_ignore_db=testreplicate_ignore_db=testlog-bin=mysql-binbinlog_cache_size=1Mbinlog_format=mixedexpire_logs_days=3

重启MySQL服务:

sudo systemctl restart mysql

2. 修改Slave配置文件并重启服务

编辑Slave的配置文件:

[mysqld]server_id=2binlog_do_db=mydbbinlog_ignore_db=testreplicate_ignore_db=testlog-bin=mysql-binbinlog_cache_size=1Mbinlog_format=mixedexpire_logs_days=3

重启MySQL服务:

sudo systemctl restart mysql

3. 在Master上创建用于复制的用户

通过MySQL命令创建复制用户:

mysql> GRANT replication slave, replication client ON *.* TO 'repl'@'192.168.247.130' IDENTIFIED BY 'pwd';

4. 备份Master的数据

方法1:锁表后备份

mysql> FLUSH TABLES WITH READ LOCK;mysql> SHOW MASTER STATUS;

记录Master的binlog文件和位置信息,执行备份:

mysqldump -uroot -p --lock-all-tables -R --master-data=2 --databases mydb > /tmp/mydb.sql

方法2:使用--master-data参数

执行备份时保留binlog文件:

mysqldump -uroot -p --hex-blob --lock-all-tables -R --triggers --databases mydb --master-data=2 --default-character-set='utf8' > /tmp/mydb.sql

5. 拷贝备份文件到Slave并导入

将备份文件传输到Slave服务器:

scp /tmp/mydb.sql 192.168.247.130:

在Slave上导入数据:

mysql -uroot -p mydb < /tmp/mydb.sql

6. 在Slave上同步binlog

根据备份方式选择对应的命令:

  • 如果使用了方法1:
    mysql> CHANGE MASTER TO    MASTER_HOST='192.168.247.128',    MASTER_USER='repl',    MASTER_PASSWORD='pwd',    MASTER_LOG_FILE='mysql-bin.000015',    MASTER_LOG_POS=1273;
  • 如果使用了方法2:
    grep -i "CHANGE MASTER TO" /tmp/mydb.sql

    提取binlog文件名和位置信息。

7. 启用复制

在Slave上执行:

mysql> START SLAVE;

8. 验证Slave状态

查看Slave的复制状态:

mysql> SHOW SLAVE STATUS\G

确保Slave_IO_StatestoppedSlave_SQL_Runningyes,并检查是否有错误提示。

常见问题:MySQL UUID冲突

如果Slave与Master的UUID相同,可能是由于虚拟机克隆导致的auto.cnf文件内容相同。解决方法是:

  • 删除Slave上的auto.cnf文件:
    sudo rm /var/lib/mysql/auto.cnf
  • 重启MySQL服务:
    sudo systemctl restart mysql
  • 重启后,Slave会生成新的UUID,完成后验证复制是否正常。

    通过以上步骤,可以实现基于日志的主从复制,确保数据同步与高可用性。

    转载地址:http://sjbfk.baihongyu.com/

    你可能感兴趣的文章
    mqtt broker服务端
    查看>>
    MQTT 保持活动计时器:让您的设备保持连接
    查看>>
    MQTT 保留消息
    查看>>
    MQTT 和 EMQX到底有啥区别?
    查看>>
    MQTT 持久会话与 Clean Session 详解
    查看>>
    MQTT介绍及与其他协议的比较
    查看>>
    MQTT工作笔记0007---剩余长度
    查看>>
    MQTT工作笔记0008---服务质量
    查看>>
    MQTT工作笔记0009---订阅主题和订阅确认
    查看>>
    Mqtt搭建代理服务器进行通信-浅析
    查看>>
    MS COCO数据集介绍
    查看>>
    MS Edge浏览器“STATUS_INVALID_IMAGE_HASH“兼容性问题
    查看>>
    ms sql server 2008 sp2更新异常
    查看>>
    MS SQL查询库、表、列数据结构信息汇总
    查看>>
    MS UC 2013-0-Prepare Tool
    查看>>
    MSBuild 教程(2)
    查看>>
    msbuild发布web应用程序
    查看>>
    MSB与LSB
    查看>>
    MSCRM调用外部JS文件
    查看>>
    MSCRM调用外部JS文件
    查看>>