技术开发 频道

MySQL Replication 实作

  【IT168技术文档】MySQLReplication-MySQL数据库抄写。

  为何要作Replication(抄写)

  · 报表(Reporting)-对于需产出大量报表的数据库而言,为不影响MasterDB的效能,建议另外建置一个专属的报表数据库。

  · 数据安全-数据库抄写至SlaveDB,必要时可随时关闭抄写程序。对SlaveDB作数据库备份也可避免对MasterDB的在线运作影响。

  · 异地备份 - 对于分公司数据库的复制或异地备份需求。

  不同版本间抄写的兼容性

  官方手册-http://dev.mysql.com/doc/refman/5.0/...atibility.html

  基本上不同版本之间的数据库抄写,建议是从旧版本抄写至下一个新版本,例如你可以从MySQL4.1.x抄写至MySQL5.0.x,或从MySQL5.0.x抄写至MySQL5.1.x,不过为求系统稳定性,还是建议尽量以同个主版本来建置两个数据库间的抄写。

  系统环境

  Master DB)

  Purpose: Production

  IP address: 10.10.10.112

  DB version: mysql-server-5.0.22-2.2.el5_1.1

  Slave DB)

  Purpose: Backup or Reporting

  IP address: 10.10.10.134

  DB version: mysql-server-5.0.45-7.el5

  如何建置两个数据库的抄写

  新增一个数据库用户用以执行抄写

  这个用户是在MasterDB,用来让SlaveDB连接用,其权限仅需要开启REPLICATIONSLAVE,例如新增一个用户为repl,密码为replpass。

  在MasterDB执行下列SQLstatements:

  mysql> GRANTREPLICATIONSLAVEON*.*TO'repl'@'10.10.10.134'IDENTIFIEDBY'replpass';

  mysql> GRANTREPLICATIONSLAVEON*.*TO'repl'@'10.10.10.134'IDENTIFIEDBY'replpass';

  你可以对每一个SlaveDB设定不同连接账号,也可以用同一个账号。Tip:

  上述的新增账户方式是以SlaveDB的IP来限制连接的来源,如果实际的操作环境有使用domain也可以改成

  domain name 方式来作,详细方法请参考官方的在线手册。

  要验证账号是否可以运作,可以在 Slave DB 尝试使用该账号连接,请在 Slave DB 执行下述指令

  shell> mysql -u repl --password='replpass' -h 10.10.10.112

0
相关文章