CentOS MySQL主从复制

简介

MySQL主从复制是一种常用的数据库同步技术,它可以将一个MySQL服务器的数据复制到另一个MySQL服务器上,以实现数据的备份、读写分离等功能。本文将介绍在CentOS操作系统上如何配置MySQL主从复制。

环境准备

在进行主从复制配置之前,需要进行以下环境准备:

  • 两台CentOS服务器,分别作为主服务器和从服务器。本文将分别称为Server A和Server B。

  • 在两台服务器上安装MySQL数据库。可以使用以下命令安装MySQL:

    yum install mysql-server
    
  • 确保两台服务器之间可以相互通信,可以使用以下命令测试网络连通性:

    ping <IP地址>
    

配置主服务器

1. 修改配置文件

打开Server A上的MySQL配置文件/etc/my.cnf,找到以下配置项并进行修改:

server-id = 1
log_bin = /var/lib/mysql/mysql-bin.log

其中,server-id用于标识MySQL服务器的唯一ID,可以设置为1或者其他唯一的整数。log_bin用于开启二进制日志功能,用于记录所有的数据库操作。

2. 重启MySQL服务

保存并关闭配置文件后,使用以下命令重启MySQL服务:

service mysqld restart

3. 创建复制账户

登录MySQL服务器,使用以下命令创建用于复制的账户:

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

其中,repl为账户名,password为密码,可以根据实际情况进行修改。

4. 查看主服务器状态

使用以下命令查看主服务器状态:

SHOW MASTER STATUS;

记录下输出中的FilePosition字段的值,将在配置从服务器时使用。

配置从服务器

1. 修改配置文件

打开Server B上的MySQL配置文件/etc/my.cnf,找到以下配置项并进行修改:

server-id = 2

server-id设置为2或其他唯一的整数。

2. 重启MySQL服务

保存并关闭配置文件后,使用以下命令重启MySQL服务:

service mysqld restart

3. 配置主从复制

登录MySQL服务器,使用以下命令配置主从复制:

CHANGE MASTER TO
    MASTER_HOST='<主服务器IP地址>',
    MASTER_USER='repl',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='<主服务器上的File值>',
    MASTER_LOG_POS=<主服务器上的Position值>;
START SLAVE;

<主服务器IP地址>替换为Server A的IP地址,<主服务器上的File值><主服务器上的Position值>替换为主服务器上SHOW MASTER STATUS命令输出的对应值。

4. 查看从服务器状态

使用以下命令查看从服务器状态:

SHOW SLAVE STATUS\G

如果输出中的Slave_IO_RunningSlave_SQL_Running字段的值都为Yes,表示主从复制已经成功配置。

总结

通过以上步骤,我们成功配置了CentOS上的MySQL主从复制。主服务器上的数据将自动复制到从服务器上,以实现数据的备份和读写分离。在实际生产环境中,还可以根据需求进行更详细的配置,如配置多个从服务器、配置复制过滤规则等。

流程图

flowchart TD
    A(主服务器) --> B(从服务器)
    B --> A

以上是CentOS MySQL主从复制的配置流程。通过合理的配置和管理,可以实现高可用性和灵活的数据库架构。