• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 设置要复制的主数据库的配置

    本节介绍如何设置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=1my.cnf
    • 确保skip_networking未在复制主机上启用系统变量。如果已禁用网络连接,则从服务器将无法与主服务器通信,并且复制将失败。