设置要复制的主数据库的配置
本节介绍如何设置MySQL服务器以使用基于二进制日志文件位置的复制。设置复制的方法有很多,使用的确切方法取决于您如何设置复制,以及您的master数据库中是否已有数据。
所有设置都有一些通用的通用任务:
- 在主服务器上,必须确保启用了二进制日志记录,并配置唯一的服务器ID。这可能需要重新启动服务器。
- 在要连接到主服务器的每个从服务器上,必须配置唯一的服务器ID。这可能需要重新启动服务器。请参见“设置复制从站”。
- (可选)创建一个单独的用户,供您的从属使用,以便在读取二进制日志以进行复制时与主控一起使用。请参见“创建用于复制的用户”。
- 在创建数据快照或开始复制过程之前,应在主数据库上将当前位置记录在二进制日志中。在配置从站时,您需要此信息,以便从站知道二进制日志中从何处开始执行事件。请参见“获取复制主二进制日志坐标”。
- 如果您已经在主服务器上拥有数据并想要使用它来同步从服务器,则需要创建一个数据快照以将数据复制到从服务器上。您使用的存储引擎会影响创建快照的方式。使用时
MyISAM
,必须在允许主机继续执行语句之前,停止在主机上处理语句以获得读锁,然后获取其当前的二进制日志坐标并转储其数据。如果不停止执行语句,则数据转储和主状态信息将不匹配,从而导致从属服务器上的数据库不一致或损坏。有关复制MyISAM
母版的更多信息,请参见“获取复制主二进制日志坐标”。如果使用InnoDB
,则不需要读取锁定,并且足够长的事务可以传输数据快照。有关更多信息,请参见“ InnoDB和MySQL复制”。 - 使用连接主机的设置来配置从服务器,例如主机名,登录凭据以及二进制日志文件名和位置。请参见“在从站上设置主配置”。
- 根据您的系统,在主服务器和从服务器上实施特定于复制的安全措施。请参见“复制安全性”。
注意设置过程中的某些步骤需要
SUPER
特权。如果您没有此特权,则可能无法启用复制。
配置基本选项后,选择您的方案:
- 要为不包含数据的主服务器和从服务器的全新安装设置复制,请参见“使用新的主服务器和从服务器设置复制”。
- 要使用来自现有MySQL服务器的数据来设置新主服务器的复制,请参见“使用现有数据设置复制”。
- 要将复制从设备添加到现有复制环境,请参见“将从站添加到复制环境”。
在管理MySQL复制服务器之前,请阅读整章并尝试在“用于控制主服务器的SQL语句”和“用于控制从属服务器的SQL语句”中提到的所有语句。还应熟悉“复制和二进制日志记录选项和变量”中描述的复制启动选项。
要将主服务器配置为使用基于二进制日志文件位置的复制,必须确保启用了二进制日志记录,并建立唯一的服务器ID。如果尚未完成,则需要重新启动服务器。
主服务器上需要二进制日志记录,因为二进制日志是将更改从主服务器复制到从服务器的基础。默认情况下启用二进制日志记录(log_bin
系统变量设置为ON)。该--log-bin
选项告诉服务器二进制日志文件要使用的基本名称。建议您指定此选项,为二进制日志文件提供一个非默认的基本名称,这样,如果主机名发生更改,则可以轻松地继续使用相同的二进制日志文件名(请参阅第B.4.7节“已知” MySQL中的问题”)。
复制拓扑中的每个服务器都必须配置有唯一的服务器ID,您可以使用server_id
系统变量指定该ID 。此服务器ID用于标识复制拓扑中的各个服务器,并且必须为1到(2 32)-1 之间的正整数。如果在主服务器上将服务器ID设置为0,则它拒绝来自从服务器的任何连接;如果在从服务器上将服务器ID设置为0,则它拒绝连接到主服务器。除此之外,您还可以选择如何组织和选择编号,只要每个服务器ID与复制拓扑中任何其他服务器使用的每个其他服务器ID不同即可。的server_id
系统变量默认设置为1。可以使用该默认服务器ID启动服务器,但是如果未明确指定服务器ID,则会发出参考消息。
以下选项也对复制主服务器产生影响:
- 为了在
InnoDB
与事务一起使用的复制设置中获得最大的持久性和一致性,应在复制主文件中使用innodb_flush_log_at_trx_commit=1
和。sync_binlog=1
my.cnf
- 确保
skip_networking
未在复制主机上启用系统变量。如果已禁用网络连接,则从服务器将无法与主服务器通信,并且复制将失败。