使用MySQL内建复制功能

时间:2019-12-11 22:40来源:计算机教程
MySQL内部复制功能是建立在两个或两个以上服务器之间,通过设定它们之间的主-从关系来实现的。其中一个作为主服务器,其它的作为从服务器。本节将详细讨论如何配置两台服务器,

  MySQL内部复制功能是建立在两个或两个以上服务器之间,通过设定它们之间的主-从关系来实现的。其中一个作为主服务器,其它的作为从服务器。本节将详细讨论如何配置两台服务器,将一个设为主服务器,另一个设为从服务器。并且描述一下在它们之间进行切换的处理过程。本节是在MySQL的3.23.25版本上进行的配置设置过程,并且也是在这个版本上进行的测试。MySQL开发人员建议最好使用最新版本,并且主-从服务器均使用相同的版本。同时MySQL 3.23版本仍然是beta测试版,而且这个版本可能不能向下兼容。

在Soundbreak我们天天24小时不间断之播放实况音频和视频,所以对于MySQL之新增之复制特性,我们不能做出很令人信服之测试。通过测试我们发现,可以使用这个特性来与备份数据库服务器保持数据同步,这样当主服务器因为某种原因处理失效时,能够使用备份机处理所有之查询。对于这样之要求,配置两台服务器并不困难。我将具体讨论整个处理过程,同时讨论一下当主服务器失效时,如何使用PHP来重定向查询。

  配置主服务器

  MySQL内部复制功能是建立在两个或两个以上服务器之间,通过设定它们之间之主-从关系来实现之。其中一个作为主服务器,其它之作为从服务器。我将具体讨论如何配置两台服务器,将一个设为主服务器,另一个设为从服务器。并且描述一下在它们之间进行切换之处理过程。我是在MySQL之3.23.23版本上进行之配置设置过程,并且也是在这个版本上进行之测试。MySQL开发人员建议最好使用最新版本,并且主-从服务器均使用相同之版本。同时MySQL 3.23版本仍然是beta测试版,而且这个版本可能不能向下兼容。所以因为这个原因,在实际之网站中,我现在还没有使用这个版本。拥有容错能力具有一个好处是,在不需中断任何查询之情况下,对服务器进行升级。

  我们将指定两台服务器。A(IP为192.168.0.1)作为主服务器(简称为主机)。B(IP为192.168.0.2)作为从服务器(简称为从机)。

第一步:配置主服务器
  在这篇文章之剩下篇幅中,我将指定两台服务器。A(IP为10.1.1.1)作为主服务器(简称为主机)。B(IP为10.1.1.2)作为后备服务器(简称为备机)。

  1、建立用于备份的帐号

  MySQL之复制功能之实现过程为:备机(B)与主机(A)连接,然后读出主机之二进制更新日志,再将发生之变化合并到自已之数据库中。备机需要一个用户帐号来与主机连接,所以在主机上创建一个帐号,并只给它FILE权限,如下操作:

  MySQL的复制功能的实现过程为:从机(B)与主机(A)连接,然后读出主机的二进制更新日志,再将发生的变化合并到自已的数据库中。从机需要一个用户帐号来与主机连接,所以在主机上创建一个帐号,并只给它FILE权限,如下操作:

GRANT FILE ON *.* TO replicate@10.1.1.2 IDENTIFIED BY password;

  mysql>GRANT FILE ON *.* TO [vnsc5858威尼斯城官网,email protected] IDENTIFIED BY password;

  为了备机能够与主机连接,要在主机上运行FLUSH PRIVILEGES,不过不要担心,因为我们将在下面之步骤中停掉服务器。

  为了从机能够与主机连接,要在主机上运行FLUSH PRIVILEGES:

  现在我们需要主机数据库之一个快照,并且对主机进行配置,答应生成二进制之更新日志。首先编辑my.cnf文件,以便答应二进制更新日志,所以在[mysqld]部分之下面某个之方增加一行:log-bin。在下一次服务器启动时,主机将生成二进制更新日志(名为:<主机名>-bin.<增量序号#>)。为了让二进制更新日志有效,关闭MySQL服务程序,然后将主机上之所有数据库目录到另一个目录中,接着重新启动mysqld。
请确定得到了所有数据库,否则在进行复制时,假如一个表在主机上存在但在备机上不存在,将因为出错而退出。现在你已经得到了数据之快照,和一个从建立快照以来之二进制日志,上面记录着任何对数据库之修改。请注重MySQL数据文件(*.MYD,*.MYI和*.frm)是依靠于文件系统之,所以你不能仅仅进行文件传输,如从Solaris到Linux。假如你处于一个异种之服务器环境,你将不得不使用mysqldump实用程序或其它之定制脚本来得到数据快照。

  mysql> FLUSH PRIVILEGES;

第二步:配置备机
  让我们继续。停掉备机上之MySQL服务程序,并且把从主机上拷贝来之数据库目录移到备机上之data目录下。请确认将目录之拥有者和属组改变为MySQL用户相应值,并且修改文件模式为660(只对拥有者和属组可读、可写),目录本身为770(只对拥有者和属组可读、可写和可执行)。

  不过不要担心,因为我们将在下面的步骤中停掉服务器。

  继续。在备机上启动MySQL服务程序,确认MySQL工作正常。运行几个select查询(不要update或insert查询),看一看在第一步中得到之数据快照是否成功。接着,在测试成功后关掉MySQL服务程序。

  2、修改选项文件

  在备机上配置需要访问之主机,以便接收主机之更改。所以需要编辑务机上之my.cnf文件,在[mysqld]部分中增加下面几行:

  现在我们需要主机数据库的一个快照,并且对主机进行配置,允许生成二进制的更新日志。首先编辑my.cnf文件,以便允许二进制更新日志,所以在[mysqld]部分的下面某个地方增加一行:log-bin。在下一次服务器启动时,主机将生成二进制更新日志(名为:<主机名>-bin.<增量序号#>)。

master-host=10.1.1.1
master-user=replicate
master-password=password

编辑:计算机教程 本文来源:使用MySQL内建复制功能

关键词: