MySQL 主从复制搭建流程
介绍
MySQL主从复制是一种常见的数据库复制技术,通过将主数据库的变更操作同步到从数据库,实现数据的备份和读写分离等功能。本文将详细介绍在Linux系统下,使用MySQL进行主从复制的搭建流程。
环境准备
在开始搭建主从复制之前,我们需要准备以下环境:
- 两台安装有MySQL的服务器,分别作为主服务器(Master)和从服务器(Slave)
- 确保两台服务器可以相互通信
- 主服务器上有一个待复制的数据库
主服务器配置
- 登录主服务器,在MySQL配置文件(通常为/etc/my.cnf或/etc/mysql/my.cnf)中添加以下配置:
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=your_database_name
其中,server-id为1表示该服务器为主服务器,设置一个唯一的标识即可。
- 重启MySQL服务使配置生效:
sudo service mysql restart
- 登录MySQL服务器,创建用于复制的用户并授权:
CREATE USER 'replication'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
将your_password替换为设置的密码。
- 查看主服务器状态并记录下File和Position的值,以备后续使用:
SHOW MASTER STATUS;
会得到如下输出:
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 107 | your_database | |
+------------------+----------+--------------+------------------+
记录下File和Position的值。
从服务器配置
- 登录从服务器,在MySQL配置文件中添加以下配置,并将server-id设置为2:
[mysqld]
server-id=2
- 重启MySQL服务使配置生效:
sudo service mysql restart
- 登录MySQL服务器,执行以下命令使从服务器连接到主服务器:
CHANGE MASTER TO MASTER_HOST='your_master_host', MASTER_USER='replication', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='your_master_log_file', MASTER_LOG_POS=your_master_log_pos;
将your_master_host替换为主服务器的IP地址,your_password替换为之前创建复制用户时设置的密码,your_master_log_file和your_master_log_pos分别替换为主服务器上的File和Position的值。
- 启动从服务器的复制功能:
START SLAVE;
- 查看从服务器状态:
SHOW SLAVE STATUS\G
如果看到结果中的Slave_IO_Running
和Slave_SQL_Running
均为Yes
,则表示从服务器与主服务器的复制已成功搭建。
测试主从复制
为了验证主从复制是否正常工作,可以进行一些测试。
- 在主服务器上创建一个测试表并插入一些数据:
CREATE TABLE test (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20)
);
INSERT INTO test (name) VALUES ('Alice'), ('Bob'), ('Charlie');
- 在从服务器上查询该表,验证数据是否同步:
USE your_database_name;
SELECT * FROM test;
会得到与主服务器上相同的结果:
+----+---------+
| id | name |
+----+---------+
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
+----+---------+
总结
本文介绍了在Linux系统下使用MySQL进行主从复制的搭建流程。通过配置主服务器和从服务器的相关参数,并确保服务器之间可以相互通信,可以实现数据的备份和读写分离等功能。搭建完成后,可以通过测试验证主从复制是否正常工作。