本节介绍如何设置 MySQL 服务器以使用基于二进制日志文件位置的复制。设置复制有多种不同的方法,要使用的确切方法取决于设置复制的方式,以及源数据库中是否已有数据。
有一些通用任务对所有设置都是通用的:
在源上,您必须启用二进制日志记录并配置唯一的服务器 ID。这可能需要重新启动服务器。请参阅 第 16.1.2.1 节,“设置复制源配置”。
在要连接到源的每个副本上,您必须配置一个唯一的服务器 ID。这可能需要重新启动服务器。请参阅 第 16.1.2.5.1 节,“设置副本配置”。
(可选)为您的副本创建一个单独的用户,以便在读取二进制日志进行复制时使用源进行身份验证。请参阅 第 16.1.2.2 节,“为复制创建用户”。
在创建数据快照或开始复制过程之前,您应该在源上记录二进制日志中的当前位置。配置副本时需要此信息,以便副本知道二进制日志中的何处开始执行事件。请参阅 第 16.1.2.3 节,“获取复制源的二进制日志坐标”。
如果源上已有数据并想用它来同步副本,则需要创建数据快照以将数据复制到副本。您使用的存储引擎会影响您创建快照的方式。使用时
MyISAM
,必须停止处理源上的语句以获得读锁,然后获取其当前二进制日志坐标并转储其数据,然后才允许源继续执行语句。如果不停止语句的执行,数据转储和源的状态信息不匹配,导致副本上的数据库不一致或损坏。有关复制的更多信息MyISAM
源,请参阅 第 16.1.2.3 节,“获取复制源的二进制日志坐标”。如果您正在使用InnoDB
,则不需要读锁并且足够长的事务来传输数据快照就足够了。有关详细信息,请参阅 第 14.20 节,“InnoDB 和 MySQL 复制”。使用连接到源的设置配置副本,例如主机名、登录凭据以及二进制日志文件名和位置。请参阅 第 16.1.2.5.2 节,“在副本上设置源配置”。
安装过程中的某些步骤需要
SUPER
权限。如果您没有此权限,则可能无法启用复制。
配置基本选项后,选择您的方案:
要为不包含数据的源和副本的全新安装设置复制,请参阅 第 16.1.2.5.3 节,“在新源和副本之间设置复制”。
要使用现有 MySQL 服务器中的数据设置新源的复制,请参阅 第 16.1.2.5.4 节,“使用现有数据设置复制”。
要将副本添加到现有复制环境,请参阅 第 16.1.2.6 节,“将副本添加到复制拓扑”。
在管理 MySQL 复制服务器之前,请阅读整章并尝试第 13.4.1 节“控制复制源服务器的 SQL 语句”和 第 13.4.2 节“控制副本服务器的 SQL 语句” 中提到的所有语句 。还要熟悉 第 16.1.6 节“复制和二进制日志记录选项和变量”中描述的复制启动选项。