16
2024
12
14:09:16

MySQL8.0 主从复制配置

MySQL8.0 主从复制配置

  简单介绍一下 MySQL 的主从复制配置,MySQL8.0 以及 MySQL8.4 均可使用。主从同步主要分两个步骤,一是进行一次性的增量同步,二是开启常态化的增量同步。

初始条件

  • 主库已配置好,并初始化数据

  • 从库新建好数据库

my.cnf 配置

  • 主库

1
2
3
4
server-id=12831
innodb_flush_log_at_trx_commit=1
sync_binlog=1
binlog-do-db=ems # 指定需要复制的数据库,多个则配置多行
  • 从库

1
server-id=12830
  • 每个 MySQL 实例的 server-id 必须不同

主库上新建用于数据同步的用户

1
2
CREATE USER 'repl'@'%.example.com' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.example.com';

主库进行一次增量同步

  • 主库:

    • FLUSH TABLES WITH READ LOCK;

    • mysqldump -uroot -p --source-data ems > ems.dump

    • UNLOCK TABLES;

  • 将 dump 文件从主库主机传输到从库主机

  • 从库恢复文件:mysql -uroot -p ems < ems.dump

从库配置增量同步

  • 完整的命令如下:

    • SOURCE_HOST:主库的 IP 地址

    • SOURCE_USER 和 SOURCE_PASSWORD:为上面设置的用户名和密码

    • SOURCE_LOG_FILE 和 SOURCE_LOG_POS:从 BINLOG 的哪个位置开始同步

1
2
3
4
5
6
7
CHANGE REPLICATION SOURCE TO
   SOURCE_HOST='source_host_name',
   SOURCE_USER='replication_user_name',
   SOURCE_PASSWORD='replication_password',
   SOURCE_LOG_FILE='recorded_log_file_name',
   SOURCE_LOG_POS=recorded_log_position,
   GET_SOURCE_PUBLIC_KEY=1;
  • SOURCE_LOG_FILE 和 SOURCE_LOG_POS 可以从 ems.dump 文件中获取

1
2
3
4
5
--
-- Position to start replication or point-in-time recovery from
--

CHANGE REPLICATION SOURCE TO SOURCE_LOG_FILE='binlog.000002', SOURCE_LOG_POS=158;
  • 检查配置:SHOW REPLICA STATUS;

  • 启动同步:START REPLICA;

  • 再次检查配置:SHOW REPLICA STATUS;Replica_IO_Running 和 Replica_SQL_Running 两个均为 Yes 主从同步即配置成功

参考文献




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/8712.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: