当前位置:首页 > 行业动态 > 正文

MySQL实现一主对多从配置详解

MySQL一主对多从配置涉及主服务器设置开启二进制日志,从服务器配置指定主服务器信息,并在从服务器上执行CHANGE MASTER TO命令。之后,使用START SLAVE启动复制进程。

MySQL实现一主对多从配置详解

1. 环境准备

为了实现MySQL的一主对多从配置,我们需要准备以下环境:

主服务器(Master):安装MySQL服务,用于存储数据和同步数据到从服务器。

从服务器(Slave):安装MySQL服务,用于接收主服务器同步的数据。

2. 主服务器配置

2.1 修改配置文件

在主服务器上,编辑MySQL的配置文件my.cnf,通常位于/etc/mysql/目录下,在[mysqld]部分添加以下内容:

serverid=1
logbin=mysqlbin
binlogformat=mixed

这里,serverid用于标识主服务器,logbin指定二进制日志文件名,binlogformat设置二进制日志格式为混合模式。

2.2 重启MySQL服务

保存配置文件后,重启MySQL服务以使配置生效,可以使用以下命令重启服务:

sudo service mysql restart

3. 从服务器配置

3.1 修改配置文件

在从服务器上,编辑MySQL的配置文件my.cnf,通常位于/etc/mysql/目录下,在[mysqld]部分添加以下内容:

serverid=2
relaylog=relaybin

这里,serverid用于标识从服务器,relaylog指定中继日志文件名。

3.2 重启MySQL服务

保存配置文件后,重启MySQL服务以使配置生效,可以使用以下命令重启服务:

sudo service mysql restart

4. 主从复制配置

4.1 主服务器授权

在主服务器上,使用以下命令授权从服务器连接:

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

这里,将slave_user替换为从服务器的用户名,password替换为从服务器的密码。

4.2 获取主服务器信息

在主服务器上,使用以下命令获取主服务器的二进制日志文件名和位置:

SHOW MASTER STATUS;

记录下File和Position的值,稍后在从服务器上配置时需要使用。

4.3 从服务器配置

在从服务器上,使用以下命令配置主从复制:

CHANGE MASTER TO
MASTER_HOST='master_host_ip',
MASTER_USER='slave_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='file_name',
MASTER_LOG_POS=position;

这里,将master_host_ip替换为主服务器的IP地址,slave_user替换为从服务器的用户名,password替换为从服务器的密码,file_name替换为主服务器上的二进制日志文件名,position替换为主服务器上的二进制日志位置。

4.4 启动从服务器复制

在从服务器上,使用以下命令启动从服务器复制:

START SLAVE;

4.5 查看从服务器状态

在从服务器上,使用以下命令查看从服务器复制状态:

SHOW SLAVE STATUSG;

如果Slave_IO_Running和Slave_SQL_Running的值都是Yes,则表示主从复制已经成功配置。

0