mySQL Replication:主数据库名称是否必须与从属数据库名称相同?

时间:2009-10-19 10:11:51

标签: mysql replication database-replication

我已将主数据库名称设置为MDB&在Slave服务器中我设置为replicate-do-db = SDB< - 这不起作用?但是,当我将其设置为相同的DB名称时,它可以工作。是否有任何解决方案可以设置1个主数据库与2个不同的从服务器,但在同一服务器??

2 个答案:

答案 0 :(得分:10)

您需要指定replicate-rewrite-db选项:

--replicate-rewrite-db=from_name->to_name
  

告诉slave转换默认数据库(即一个   如果是主服务器上的from_name,则由USE选择to to_name。只要   涉及表的语句会受到影响(不是语句等   创建数据库,DROP DATABASE和ALTER DATABASE),并且仅限于   from_name是主服务器上的默认数据库。这不起作用   用于跨数据库更新。要指定多个重写,请使用此选项   选项多次。服务器使用带有from_name的第一个   匹配的价值。数据库名称转换在之前完成   --replicate- *规则已经过测试。

如果您只复制某些数据库,则需要指定replicate-do-db。请注意,此参数是replicate-rewrite-db

应用重命名操作后数据库的名称
--replicate-do-db=db_name

答案 1 :(得分:0)

具有不同数据库名称的MySQL Replication

将以下内容添加到MySQL配置文件(/etc/mysql/my.cnf)的日志记录和复制部分,我在 relay-log 上方插入了我的。

replicate-rewrite-db = db_1->db_2

db_1 替换为从远程主服务器复制的数据库名称,将 db_2 替换为目标数据库的名称。

  • 重新启动MySQL服务器(/etc/init.d/mysql restart
  • 访问MySQL shell(mysql -h localhost -u root -p
  • 检查从属状态(SHOW SLAVE STATUS\G