首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将MySQL表迁移到具有相同表的新服务器上?

问将MySQL表迁移到具有相同表的新服务器上?
EN

Database Administration用户
提问于 2016-02-03 19:18:42
回答 2查看 344关注 0票数 0

我们将我们的web服务器迁移到一个较新的服务器上。我们在做新的测试时,新旧两种都在运行。我们的客户和内部工作人员仍在生产中使用旧的,因此比一周前的新产品更新得更多,因为一周前,我们拍摄了一张快照,并进行了迁移。因此,我需要将旧服务器上的新数据迁移到新服务器上。实现这一目标的最佳方法是什么?如果我执行mysqldump并导入到新服务器,它会覆盖已经在那里的数据吗?如果是这样的话,那就好了,只是担心它会复制记录。基本上,只要把旧服务器上的所有东西都拿出来,然后当没有人在系统上时,就把它转储到新的服务器中。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2016-02-04 16:12:55

转储时,使用该选项不写入CREATE DATABASE语句。

重新加载时,在mysql命令中指定一个新的空数据库。

这将把导入的数据放在不同的数据库中。然后你可以比较它们,或者做任何事情。但是,如果计划将它们移动到旧的db名称中,则必须每次执行DROP TABLE + RENAME TABLE,才能将它们移到适当的位置。

或者,您可以将旧数据移开(drop + rename),然后加载到适当的位置。

票数 1
EN

Database Administration用户

发布于 2016-02-04 02:26:44

所以,您想要导入新数据,而不需要覆盖和没有重复的键,对吗?我不是专家,但在我看来,你可以:

  • 删除当前数据并导入整个旧数据库,
  • 在mysqlimport上使用--忽略或-替换--或者不会重复行(它们要么--替换现有行,要么--忽略重复),
  • mysqldump而不创建数据库、表和使用Insert忽略选项(--insert-ignore),因此它将插入数据并跳过重复的键,
  • 导入时使用--force,在插入时跳过错误,这样如果已经插入了一行键,就不会生成错误,只需跳过它,转到下一个insert。

您可以查找另一个已经回答的问题,并尝试找到最佳解决方案:这里或这里。

我尝试在mysqldump上使用--insert-ignore选项,导入时没有错误,新数据被插入时没有重复。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/128192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档