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:配置主服务器
在主服务器上,我们需要做一些配置来允许从服务器连接并复制数据。
- 打开主服务器的配置文件
/etc/my.cnf
:
sudo vi /etc/my.cnf
- 在
[mysqld]
部分添加以下配置:
server-id=1
log-bin=mysql-bin
这样配置文件会指定服务器的唯一ID为1,并启用二进制日志。
-
保存并退出配置文件。
-
重启 MySQL 服务以使配置生效:
sudo systemctl restart mysqld
步骤 3:配置从服务器
在从服务器上,我们需要配置一些参数来连接主服务器并复制数据。
- 打开从服务器的配置文件
/etc/my.cnf
:
sudo vi /etc/my.cnf
- 在
[mysqld]
部分添加以下配置:
server-id=2
这里的服务器ID可以是任意的唯一整数。
-
保存并退出配置文件。
-
重启 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_Running
和 Slave_SQL_Running
字段的值都为 Yes
,则表示主从复制已成功启动,并且数据将自动在主从服务器之间同步。
结论
恭喜!你已经成功地配置了 MySQL 5.7 的主从复制。现在你可以通过在主服务器上进行写操作,然