MySQL 5.7 主从配置教程(Linux)

简介

MySQL 主从复制是一种常见的数据库部署架构,它可以实现数据的冗余备份和读写分离。在本教程中,我们将学习如何在 Linux 系统上配置 MySQL 5.7 的主从复制。

整体流程

以下是配置 MySQL 5.7 主从复制的整体流程,我们将使用几个步骤来完成此过程。

步骤 描述
步骤 1 确保主服务器和从服务器上都安装了 MySQL 5.7
步骤 2 配置主服务器
步骤 3 配置从服务器
步骤 4 启动主从复制
步骤 5 验证主从复制是否正常工作

现在,让我们一步一步地完成这些步骤。

步骤 1:安装 MySQL 5.7

确保你的主服务器和从服务器上都已经安装了 MySQL 5.7。你可以使用以下命令来检查 MySQL 的版本:

mysql --version

如果没有安装 MySQL 5.7,请先按照官方文档进行安装。

步骤 2:配置主服务器

在主服务器上,我们需要做一些配置来允许从服务器连接并复制数据。

  1. 打开主服务器的配置文件 /etc/my.cnf
sudo vi /etc/my.cnf
  1. [mysqld] 部分添加以下配置:
server-id=1
log-bin=mysql-bin

这样配置文件会指定服务器的唯一ID为1,并启用二进制日志。

  1. 保存并退出配置文件。

  2. 重启 MySQL 服务以使配置生效:

sudo systemctl restart mysqld

步骤 3:配置从服务器

在从服务器上,我们需要配置一些参数来连接主服务器并复制数据。

  1. 打开从服务器的配置文件 /etc/my.cnf
sudo vi /etc/my.cnf
  1. [mysqld] 部分添加以下配置:
server-id=2

这里的服务器ID可以是任意的唯一整数。

  1. 保存并退出配置文件。

  2. 重启 MySQL 服务以使配置生效:

sudo systemctl restart mysqld

步骤 4:启动主从复制

现在,我们将在主服务器上创建一个用于复制的用户,并在从服务器上进行设置。以下是具体步骤:

在主服务器上执行以下SQL语句:

CREATE USER 'replication'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

这些代码将创建一个名为 replication 的用户,并授予复制权限。通过 SHOW MASTER STATUS; 命令可以获取主服务器的二进制日志文件名和位置。请将这些信息记录下来,以备后用。

在从服务器上执行以下SQL语句:

CHANGE MASTER TO MASTER_HOST='主服务器IP地址', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='主服务器的二进制日志文件名', MASTER_LOG_POS=主服务器的二进制日志位置;
START SLAVE;

这些代码将配置从服务器以连接到主服务器,并开始复制数据。

步骤 5:验证主从复制

现在,我们可以验证主从复制是否正常工作。

在主服务器上执行以下SQL语句:

UNLOCK TABLES;

这将解锁主服务器上的表。

然后,在从服务器上执行以下SQL语句:

SHOW SLAVE STATUS\G

如果看到 Slave_IO_RunningSlave_SQL_Running 字段的值都为 Yes,则表示主从复制已成功启动,并且数据将自动在主从服务器之间同步。

结论

恭喜!你已经成功地配置了 MySQL 5.7 的主从复制。现在你可以通过在主服务器上进行写操作,然