MySQL 主从复制搭建

MySQL 主从复制是许多应用程序中常见的架构设计,用于实现数据的冗余备份和负载均衡。通过主从复制,主数据库(Master)上的数据更改能够实时地同步到从数据库(Slave),从而实现高可用性与数据的安全性。本篇文章将详细介绍如何搭建 MySQL 主从复制,包含必要的代码示例。

环境准备

在开始之前,确保你有两台服务器,一台作为主服务器,另一台作为从服务器。假设主服务器的IP为 192.168.1.100,从服务器的IP为 192.168.1.200,MySQL版本为 5.7

1. 主服务器(Master)的配置

1.1 编辑 MySQL 配置文件

在主服务器上,需要编辑 MySQL 的配置文件 my.cnf,通常位置在 /etc/my.cnf。添加或修改以下内容:

[mysqld]
server-id = 1  # 唯一标识
log_bin = mysql-bin  # 启用二进制日志
binlog_do_db = test_db  # 指定要复制的数据库

1.2 重启 MySQL 服务

执行以下命令重启 MySQL 服务,以使配置生效:

sudo systemctl restart mysqld

1.3 创建复制用户

在 MySQL 中创建一个用于复制的用户,并授权:

CREATE USER 'replica_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
FLUSH PRIVILEGES;

1.4 确认二进制日志

运行以下命令,确认二进制日志已经开启:

SHOW MASTER STATUS;

记录下输出的信息,例如文件名和位置,稍后在从服务器中会用到。

2. 从服务器(Slave)的配置

2.1 编辑 MySQL 配置文件

在从服务器上,编辑同样的 my.cnf 配置文件,进行如下设置:

[mysqld]
server-id = 2  # 唯一标识

2.2 重启 MySQL 服务

sudo systemctl restart mysqld

2.3 配置主服务器信息

在从服务器上,使用以下命令配置主服务器的信息:

CHANGE MASTER TO
    MASTER_HOST='192.168.1.100',
    MASTER_USER='replica_user',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000001',  # 替换为实际的文件名
    MASTER_LOG_POS=123;  # 替换为实际的位置

2.4 启动复制进程

执行以下命令启动从服务器的复制进程:

START SLAVE;

2.5 检查复制状态

用以下命令检查从服务器的复制状态:

SHOW SLAVE STATUS\G;

查看 Slave_IO_RunningSlave_SQL_Running 是否均为 Yes,如果是,则表示主从复制配置成功。

3. 测试主从复制

在主服务器中创建一个测试数据库和表:

CREATE DATABASE test_db;
USE test_db;
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
INSERT INTO users (name) VALUES ('Alice'), ('Bob');

然后在从服务器中查看数据:

USE test_db;
SELECT * FROM users;

如果从服务器中能够看到刚才在主服务器中插入的数据,说明主从复制成功。

总结

本文详细介绍了如何搭建 MySQL 的主从复制环境,从配置主服务器到从服务器的步骤,并提供了相关的代码示例。主从复制不仅可以提高数据的安全性,还能提升系统的可用性,适用于许多生产环境。希望你能通过本文的指导顺利实现 MySQL 主从复制的搭建。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部