MySQL5.7 实现双主同步部分表的过程详解

2025-01-15 03:48:13   小编

MySQL5.7 实现双主同步部分表的过程详解

在数据库管理中,MySQL 的双主同步部分表功能对于很多场景都至关重要,比如在分布式系统中实现数据的高效同步与管理。下面详细介绍 MySQL5.7 实现双主同步部分表的过程。

环境准备必不可少。确保两台服务器都安装了 MySQL5.7 版本,并且具有基本的数据库配置。两台服务器之间网络畅通,能互相访问。

接着,进行主服务器配置。以服务器 A 为例,修改 MySQL 配置文件(通常是 my.cnf 或 my.ini)。开启二进制日志,设置 server-id 为唯一值,比如 1。配置完成后重启 MySQL 服务,让设置生效。同样的操作在服务器 B 上进行,server-id 设置为 2。

然后,在主服务器 A 上创建用于同步的账号。使用命令“CREATE USER'sync_user'@'%' IDENTIFIED BY 'password';”创建用户,并赋予复制权限“GRANT REPLICATION SLAVE ON . TO'sync_user'@'%' IDENTIFIED BY 'password';”。刷新权限“FLUSH PRIVILEGES;”。在服务器 B 上执行相同操作,创建相同的同步账号。

之后,获取主服务器状态信息。在服务器 A 上执行“SHOW MASTER STATUS;”,记录 File 和 Position 的值。在服务器 B 上使用这些值配置从服务器,执行“CHANGE MASTER TO MASTER_HOST='server_a_ip', MASTER_USER='sync_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='记录的 File 值', MASTER_LOG_POS=记录的 Position 值;”。对服务器 B 执行相同操作,获取状态信息并在服务器 A 上配置从服务器。

接下来是部分表同步的关键设置。在两台服务器上分别创建需要同步的表。然后,在主服务器 A 上使用“binlog-do-db”和“binlog-ignore-db”参数指定要同步和忽略的数据库。例如,“binlog-do-db = db_name”表示只同步该数据库,“binlog-ignore-db = other_db_name”表示忽略该数据库。在服务器 B 上进行类似设置。

最后,启动复制并检查状态。在两台服务器上分别执行“START SLAVE;”,然后使用“SHOW SLAVE STATUS \G;”检查复制状态。确保“Slave_IO_Running”和“Slave_SQL_Running”都为“Yes”,“Seconds_Behind_Master”为 0 或接近 0,表明同步正常。

通过以上详细步骤,就能在 MySQL5.7 中顺利实现双主同步部分表,为数据管理与应用提供有力支持。

TAGS: 数据库同步 MySQL5.7 双主同步 部分表同步

欢迎使用万千站长工具!

Welcome to www.zzTool.com