博客
关于我
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/

    你可能感兴趣的文章
    MySQL I 有福啦,窗口函数大大提高了取数的效率!
    查看>>
    mysql id自动增长 初始值 Mysql重置auto_increment初始值
    查看>>
    MySQL in 太多过慢的 3 种解决方案
    查看>>
    MySQL InnoDB 三大文件日志,看完秒懂
    查看>>
    Mysql InnoDB 数据更新导致锁表
    查看>>
    Mysql Innodb 锁机制
    查看>>
    MySQL InnoDB中意向锁的作用及原理探
    查看>>
    MySQL InnoDB事务隔离级别与锁机制深入解析
    查看>>
    Mysql InnoDB存储引擎 —— 数据页
    查看>>
    Mysql InnoDB存储引擎中的checkpoint技术
    查看>>
    Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
    查看>>
    MySQL InnoDB引擎的锁机制详解
    查看>>
    Mysql INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
    查看>>
    mysql InnoDB数据存储引擎 的B+树索引原理
    查看>>
    mysql innodb通过使用mvcc来实现可重复读
    查看>>
    mysql insert update 同时执行_MySQL进阶三板斧(三)看清“触发器 (Trigger)”的真实面目...
    查看>>
    mysql interval显示条件值_MySQL INTERVAL关键字可以使用哪些不同的单位值?
    查看>>
    Mysql join原理
    查看>>
    MySQL JOIN原理
    查看>>
    MySQL Join算法与调优白皮书(二)
    查看>>