【发布时间】:2017-11-18 00:26:28
【问题描述】:
我已经在 localhost 上设置了两个 mysql 服务器,它们侦听两个不同的端口。
server_A:3306 和 serverB:3307
我需要将server_A的数据复制到server_B,
但在 server_B 中我需要更改数据库名称、表名称和列名称
在开始进行测试之前,我想知道是否有人知道 FEDERATED 是否可以用于这种情况,或者其他什么更适合这样做?
【问题讨论】:
-
您要设置复制还是只设置一次导出-导入作业?
-
是的,有点像复制(数据),但只更改名称......然后......一旦名称被更改,从那时起我将只检查两者之间是否有变化两个
-
要检查更改,然后我将对每个表的 * .frm 文件 + 内部的 TIMESTAMP 列使用 PHP filemtime()。这不会是一个问题。我还不得不说,这只是为了开发,所以不关心安全
-
您能不能只复制同一张表,然后在 server_B 上查看原始数据库的不同表名和列名?
-
没有。我真的要改名字了。我现在正在解决这个问题。在某些步骤中: 1 我制作了一个 mysqldump(单独的文件结构和分隔文本) 2. 使用 PHP preg_replace_callback 我更改了结构文件中的名称(这不是模棱两可的,我有所有名称的前缀) 3 在 server_B 中恢复它 如果 server_B 中不存在...如果存在,我检查 server_B 中的 .frm 文件是否比 server_A 更旧 ...如果更旧,我只检查时间戳列的最后更改。一个 php 脚本中的所有内容
标签: mysql