5

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

4

2 回答 2

11

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

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

告诉从服务器将默认数据库(即由 USE 选择的数据库)转换为 to_name,如果它是主服务器上的 from_name。只有涉及表的语句会受到影响(不包括 CREATE DATABASE、DROP DATABASE 和 ALTER DATABASE 等语句),并且只有当 from_name 是 master 上的默认数据库时。这不适用于跨数据库更新。要指定多次重写,请多次使用此选项。服务器使用第一个匹配的 from_name 值。数据库名称转换在 --replicate-* 规则测试之前完成。

如果您只复制某些数据库,则需要指定replicate-do-db. 请注意,此参数是应用重命名操作后的数据库名称replicate-rewrite-db

--replicate-do-db=db_name
于 2009-10-19T12:48:18.817 回答
0

具有不同数据库名称的 MySQL 复制

将以下内容添加到 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)
于 2017-05-13T16:02:15.200 回答