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