插件窝 干货文章 MySQL 8.0搭建双机互备-主主同步复制

MySQL 8.0搭建双机互备-主主同步复制

服务器 MASTER 复制 需要 473    来源:    2023-12-04

在MySQL 8.0中搭建双机互备的主主同步复制是一种高可用性和灾备性的数据库架构,可以确保数据库的持续可用性和数据的安全性。本文将介绍如何在MySQL 8.0中实现这一架构。

首先,我们需要在两台服务器上安装MySQL 8.0。可以通过官方网站下载MySQL 8.0的安装程序,并按照安装向导的提示进行安装。

安装完成后,我们需要对MySQL进行一些配置。打开MySQL的配置文件(一般位于/etc/my.cnf或者/etc/mysql/my.cnf),加入以下配置:

server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = mydatabase
relay_log = /var/log/mysql/mysql-relay-bin.log

其中,server-id是服务器的唯一标识,可以设置为1或者2;log_bin是用于记录二进制日志的文件路径;binlog_do_db是需要复制的数据库名称;relay_log是中继日志的文件路径。

完成配置后,重启MySQL服务使配置生效。

接下来,我们需要在两台服务器上创建数据库和表,并插入一些数据。可以使用MySQL的命令行工具或者图形化工具进行操作。

在主服务器上,我们需要执行以下命令:

CREATE DATABASE mydatabase;
USE mydatabase;
CREATE TABLE mytable (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100));
INSERT INTO mytable (name) VALUES ('John'), ('Alice');

在从服务器上,我们只需要创建一个空的数据库,不需要创建表或者插入数据。

完成数据准备后,我们需要进行主从复制的配置。

在主服务器上,我们需要执行以下命令:

GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_ip' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

其中,replication_user是用于复制的用户,slave_ip是从服务器的IP地址,password是复制用户的密码。

SHOW MASTER STATUS命令将会显示主服务器的当前状态,包括二进制日志文件名和位置。我们需要记录这些信息,在从服务器上配置复制时使用。

在从服务器上,我们需要执行以下命令:

CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='master_log_file', MASTER_LOG_POS=master_log_pos;
START SLAVE;

其中,master_ip是主服务器的IP地址,replication_user和password是在主服务器上创建的复制用户的用户名和密码,master_log_file和master_log_pos是在主服务器上SHOW MASTER STATUS命令中获得的二进制日志文件名和位置。

执行完以上命令后,从服务器将会开始复制主服务器的数据。可以通过SHOW SLAVE STATUS命令查看复制的状态。

为了实现双机互备的主主同步复制,我们还需要在另一台从服务器上配置复制。配置过程与上述从服务器的配置类似。

经过以上步骤,我们就成功搭建了MySQL 8.0的双机互备的主主同步复制架构。这种架构可以确保数据库的持续可用性和数据的安全性,即使一台服务器发生故障,另一台服务器也能够继续提供服务。