【问题标题】:Exporting data from one schema to another in MySQL Workbench在 MySQL Workbench 中将数据从一个模式导出到另一个模式
【发布时间】:2013-11-25 11:51:22
【问题描述】:

有没有办法将表和数据从一个模式导出到另一个模式?管理导入/导出选项要求我选择要连接的服务器,它显示为空白。我目前连接到我学校租用的服务器,专门用于这个课程,所以我没有任何管理员权限。

【问题讨论】:

    标签: mysql export schema mysql-workbench


    【解决方案1】:

    您可以通过 MySQL Workbench 中的数据导出创建转储,并在导出后立即将其导入新架构。 MySQL Workbench 允许覆盖转储中的目标模式。

    【讨论】:

    • 那个选项在哪里?我到处查看,在帮助文件中,它说它在数据转储选项卡中,它似乎在管理屏幕中......这是我无权访问的东西。我使用的是 5.2.31 版
    • 您使用的是 MySQL Workbench 5.2.31?天啊,终于更新了!我们在 6.0.8(即将到来的 6.0.9)。在最新版本中,当您打开连接时,请转到管理 -> 数据导入/恢复。有一个名为“要导入的默认架构”的设置,您可以在其中设置目标架构以覆盖转储中的架构(仅适用于自包含转储文件,不适用于每个表都有文件的转储文件等)。
    • 我在 6.0.8 上,并且有一个非常明确的说明,说覆盖仅在您有没有模式名称的导出时才有效。我现在正试图弄清楚如何在没有模式名称的情况下导出。如果/当我找到这样的选项时,我会发布。到目前为止,没有骰子。 (虽然没有完成搜索)。我的数据库很大,因此无法编辑转储文件以删除架构名称。
    • 对我来说很好,只需从 sql 转储文件中删除前两行。然后你可以选择默认模式。
    【解决方案2】:

    在 6.0 及更高版本中,转储看起来像是在您命名为转储的目录中写出单个表。所有架构和表名都默认为您从中导出的架构(如您所指出的)。为了便于导入新架构,只需在转储目录中运行以下命令:

    find . -type f -exec sed -i 's/your_export_schema/your_different_schema_name/g' {} \;
    

    但请注意,如果您的导出数据中包含旧架构名称,您会感到很自卑。

    【讨论】:

      【解决方案3】:

      我注意到问题是关于 Workbunch,但请注意 phpMyAdmin 在数据库操作中直接具有此功能。

      【讨论】:

        【解决方案4】:

        如果您在将数据导入新架构时遇到问题,例如无法在其中获取任何数据,则可能需要一种解决方法。我将模式从 MySQL 工作台导出到 .sql 文件,以便稍后将其导入不同的模式,问题是导出的 .sql 文件维护了以前的模式。

        所以如果你在 .sql 导出文件的开头找到这个:

        CREATE DATABASE  IF NOT EXISTS `old_schema` /*!40100 DEFAULT CHARACTER SET latin1 */;
        USE `old_schema`;
        

        用这个替换它:

        CREATE DATABASE  IF NOT EXISTS `new_schema` /*!40100 DEFAULT CHARACTER SET latin1 */;
        USE `new_schema`;
        

        这样就可以了。在某些情况下,您的 .sql 文件可能有几百 MB,因此您必须稍等片刻,直到它在您的编辑器中打开。这段代码应该在文件的开头,所以很容易找到。

        希望对你有帮助!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-07-18
          • 1970-01-01
          • 2016-08-31
          • 2015-06-24
          • 2011-08-20
          • 1970-01-01
          • 2014-12-03
          相关资源
          最近更新 更多