MySQL 双主互为备份

简介

MySQL 是一种非常流行的关系型数据库管理系统,常用于存储和管理数据。在实际应用中,为了保证数据的高可用性和容灾能力,我们经常需要设置数据库的备份和同步机制。

双主互为备份(Master-Master Replication)是一种常见的数据库备份和同步方案,它可以实现两个数据库服务器之间的双向数据同步。当一个主服务器发生故障时,另一个主服务器可以立即接管,保证系统的正常运行。

本文将介绍如何搭建 MySQL 双主互为备份,并提供相应的代码示例。

准备工作

在开始搭建 MySQL 双主互为备份之前,我们需要准备以下工作:

  1. 安装 MySQL 数据库。可以从官方网站( MySQL。安装完成后,确保可以通过命令行或者图形界面连接到 MySQL 数据库。

  2. 创建两个数据库实例。我们需要创建两个数据库实例,分别作为主服务器和备服务器。可以通过命令行或者图形界面创建实例,并分别为它们分配不同的端口号。

  3. 确保主服务器和备服务器的网络互通。主服务器和备服务器之间需要能够互相访问,确保网络连接正常。

搭建双主互为备份

下面是搭建 MySQL 双主互为备份的步骤:

步骤 1:配置主服务器

首先,我们需要在主服务器上进行一些配置。打开主服务器的配置文件(通常位于 /etc/mysql/my.cnf),找到以下配置项,并进行修改:

# 主服务器的配置文件

# 启用二进制日志
log_bin = /var/log/mysql/mysql-bin.log

# 配置唯一标识
server-id = 1

# 配置复制规则
binlog-do-db = your_database_name

上述配置项中,我们启用了二进制日志(log_bin),并为服务器配置了一个唯一标识(server-id)。同时,我们还通过 binlog-do-db 配置项指定了需要进行同步的数据库名称。

完成配置后,重启主服务器。

步骤 2:配置备服务器

接下来,我们需要在备服务器上进行相同的配置。打开备服务器的配置文件,找到以下配置项,并进行修改:

# 备服务器的配置文件

# 启用二进制日志
log_bin = /var/log/mysql/mysql-bin.log

# 配置唯一标识
server-id = 2

# 配置复制规则
binlog-do-db = your_database_name

同样地,我们启用了二进制日志,并为备服务器配置了一个唯一标识。通过 binlog-do-db 配置项,我们指定了需要进行同步的数据库名称。

完成配置后,重启备服务器。

步骤 3:创建复制账户

为了实现双主互为备份,我们需要在主服务器和备服务器上创建复制账户。在 MySQL 命令行界面上执行以下命令:

-- 在主服务器上执行
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'备服务器的IP地址' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;

-- 在备服务器上执行
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'主服务器的IP地址' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;

上述命令中,我们创建了一个名为 replication_user 的复制账户,并为它指定了合适的 IP 地址和密码。

步骤 4:启动同步

现在,我们可以在备服务器上启动同步过程。在备服务器的 MySQL 命令行界面上执行以下命令:

-- 停止复制进程(如果有的话)
STOP SLAVE;

-- 配置主服务器的信息
CHANGE MASTER TO MASTER_HOST='主服务器的IP地址', MASTER_USER='replication_user', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='主服务器当前的二进制日志文件名称', MASTER_LOG_POS