MySQL 主主搭建
介绍
MySQL是一种开源的关系型数据库管理系统,广泛应用于各种规模的应用程序中。在一些高可用性的场景中,我们通常需要将数据库设置为主主复制模式,以确保数据的高可靠性和可用性。本文将介绍如何在MySQL中搭建主主复制模式,并附带代码示例。
主主复制模式
主主复制模式是MySQL复制的一种形式,其中两个或多个MySQL数据库服务器相互复制彼此的数据。在主主复制模式中,每个数据库都可以处理读和写请求,并且可以自动将更改传播到其他数据库中,从而实现了高可用性和数据冗余。
主主复制模式的工作原理如下:
- 在每个MySQL服务器上配置复制参数,指定对方为复制的“从服务器”。
- 当一个服务器上的数据发生更改时,该更改将被自动复制到其他服务器上。
- 当一个服务器无法连接时,其他服务器可以继续处理请求,确保了应用程序的高可用性。
使用主主复制模式,即使其中一个服务器发生故障,其他服务器仍然可以继续处理请求,并且数据不会丢失。
环境准备
在开始搭建主主复制模式之前,我们需要准备以下环境:
- 安装MySQL数据库服务器。
- 确保网络通信正常,各个服务器之间可以相互访问。
- 确保每个服务器可以访问其他服务器的MySQL端口(默认为3306)。
配置主主复制
步骤一:创建复制账户
首先,在每个服务器上创建用于复制的账户。这个账户将用于复制数据到其他服务器。假设我们要在两台服务器上搭建主主复制,分别为Server A和Server B。
在Server A上执行如下SQL语句创建复制账户:
CREATE USER 'replication'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
FLUSH PRIVILEGES;
在Server B上执行相同的SQL语句创建复制账户。
步骤二:配置主服务器
在Server A上执行以下步骤配置主服务器:
- 打开MySQL配置文件,一般为
my.cnf。 - 修改
server-id参数,设置为一个唯一的值,例如1。 - 修改
log_bin参数,启用二进制日志。将其设置为一个唯一的文件名,例如mysql-bin. - 重启MySQL服务使配置生效。
[mysqld]
server-id = 1
log-bin = mysql-bin
步骤三:配置从服务器
在Server B上执行以下步骤配置从服务器:
- 打开MySQL配置文件,一般为
my.cnf。 - 修改
server-id参数,设置为一个唯一的值,例如2。 - 修改
log_bin参数,启用二进制日志。将其设置为一个唯一的文件名,例如mysql-bin. - 重启MySQL服务使配置生效。
[mysqld]
server-id = 2
log-bin = mysql-bin
步骤四:配置主主复制
在Server A上执行以下步骤配置主主复制:
- 连接到Server A的MySQL服务器。
mysql -u root -p
- 执行以下SQL语句,设置Server B为Server A的从服务器。
CHANGE MASTER TO MASTER_HOST='Server B的IP地址', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='当前二进制日志文件', MASTER_LOG_POS=当前二进制日志位置;
- 启动主主复制。
START SLAVE;
- 重复以上步骤,在Server B上将Server A设置为从服务器。
步骤五:验证复制状态
连接到任一MySQL服务器,执行以下命令查看复制状态:
SHOW SLAVE STATUS\G
如果输出中的Slave_IO_Running和`
















