MySQL 5.6 主从复制详细步骤
介绍
MySQL 主从复制是一种常见的数据库复制技术,它可以将一个数据库服务器(主服务器)上的数据复制到另一个或多个数据库服务器(从服务器)。这种技术可以提高数据库的可用性和性能,并且可以用于数据备份、负载均衡以及在多个数据中心同步数据等场景。
本文将详细介绍如何在 MySQL 5.6 版本上配置和使用主从复制。我们将通过以下步骤来完成配置:
- 创建主服务器和从服务器
- 配置主服务器
- 配置从服务器
- 启动主从复制
创建主服务器和从服务器
我们首先需要在两台不同的服务器上创建 MySQL 实例,其中一台将作为主服务器,另一台将作为从服务器。你可以使用任何方式来创建这些服务器,比如在不同的物理机上安装 MySQL,或者使用虚拟机或者容器来创建虚拟服务器。
配置主服务器
在主服务器上进行下列配置:
- 打开主服务器的配置文件
my.cnf
(通常位于/etc/mysql/my.cnf
或者/etc/my.cnf
),添加以下配置项:
# 设置服务器唯一标识
server-id = 1
# 开启二进制日志,用于记录所有的数据库更改
log-bin = /var/log/mysql/mysql-bin.log
# 设置需要复制的数据库名称
binlog-do-db = your_database_name
# 设置可以复制到从服务器的 IP 地址
# 如果有多个从服务器,可以使用逗号分隔多个 IP 地址
replicate-do-db = your_database_name
# 设置复制账户和密码,用于从服务器连接主服务器
# 请根据实际情况设置账户和密码
master-user = your_username
master-password = your_password
- 重启主服务器以使配置生效。
配置从服务器
在从服务器上进行下列配置:
- 打开从服务器的配置文件
my.cnf
(通常位于/etc/mysql/my.cnf
或者/etc/my.cnf
),添加以下配置项:
# 设置服务器唯一标识,必须和主服务器不同
server-id = 2
# 设置从服务器需要复制的数据库名称
replicate-do-db = your_database_name
# 设置主服务器的 IP 地址和端口
master-host = your_master_server_ip
master-port = your_master_server_port
# 设置复制账户和密码,用于从服务器连接主服务器
# 请根据实际情况设置账户和密码
master-user = your_username
master-password = your_password
- 重启从服务器以使配置生效。
启动主从复制
在主服务器上进行下列操作:
- 登录主服务器的 MySQL 控制台,创建一个用于复制的账户,并为其授予复制权限:
CREATE USER 'your_username'@'your_slave_ip' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'your_username'@'your_slave_ip';
FLUSH PRIVILEGES;
- 执行以下命令查看主服务器的状态:
SHOW MASTER STATUS;
记下输出中的 File
和 Position
值,它们将用于从服务器的配置。
在从服务器上进行下列操作:
- 登录从服务器的 MySQL 控制台,执行以下命令配置从服务器复制主服务器的信息:
CHANGE MASTER TO MASTER_HOST='your_master_server_ip', MASTER_PORT=your_master_server_port, MASTER_USER='your_username', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='your_master_log_file', MASTER_LOG_POS=your_master_log_position;
将 your_master_log_file
替换为主服务器 SHOW MASTER STATUS
命令输出中的 File
值,将 your_master_log_position
替换为 Position
值。
- 开启从服务器的复制功能:
START SLAVE;
- 执行以下命令查看从服务器的状态:
SHOW SLAVE STATUS;
检查输出中的 Slave_IO_Running
和 Slave_SQL_Running
值是否为 Yes
,如果是,则主从复制配置成功。
流程图
下面是 MySQL 5.6