【问题标题】:Importing using MySQL WorkBench... error ERROR 1046 (3D000)使用 MySQL WorkBench 导入...错误 ERROR 1046 (3D000)
【发布时间】:2011-08-12 19:52:51
【问题描述】:

场景:在本地构建 RoR 环境以进行开发。生产在 EngineYard / GitHub 上。现在一切正常,除了数据库没有导入。

我有一个从我的 prod EY 网站获取的 .sql 文件。现在我需要在本地将它导入到我的 MySQL 中。我正在使用 Workbench(因为我是新手),但在下面出现错误。

请帮忙?

08:07:43 恢复 /home/james/Downloads/Futology.sql 运行:mysql --defaults-extra-file="/tmp/tmpAVeE58/extraparams.cnf" --host=localhost --user=root --port=3306 --default-character-set=utf8 --cmets

操作失败,exitcode 1 08:07:43 Import of /home/james/Downloads/Futology.sql 已完成 1 个错误

【问题讨论】:

    标签: mysql mysql-error-1046


    【解决方案1】:

    Workbench 不知道您要使用的数据库(模式)。

    在工作台中,当使用数据导入/恢复时,就在您选择要导入的文件的下方,它会询问“要导入的默认架构”

    只需从标题为“默认目标架构”的下拉列表中选择您希望它使用的数据库(架构)。如果您还没有数据库(模式),您可以使用“新建”按钮创建它。

    这令人困惑,因为 MySQL 通常似乎使用术语数据库,但 Workbench 使用模式。对于大多数目的,它们的含义相同。 MySQL 'create schema' and 'create database' - Is there any difference

    【讨论】:

      【解决方案2】:

      没有过多使用 Workbench,但是从命令行很容易做到,请查看 this(在 phpMyAdmin 说明下方)

      您要执行的命令是: mysql -u #username# -p #database# < #dump_file#

      【讨论】:

      • 我没有转储文件,它是一个不允许我导入的 .sql 文件。导入的数据库称为 company_production。我假设我需要在名为 company_production 的地方创建一个数据库,然后导入?如果是这样,怎么办!?谢谢
      • 数据库转储文件只是用于创建架构和填充数据的 SQL 语句列表。您拥有的 .sql 文件应该是转储文件并包含此类语句。你是对的,你需要先创建你的数据库。同样,我不熟悉 Workbench 工具,但按照此处的说明进行操作:create db - mysql command line 您应该能够创建数据库。从 MySQL 命令行客户端退出(通过输入“exit”),然后输入以下内容:mysql -u #username# -p #database#
      【解决方案3】:

      只需选择您的目标架构

      正如我在上图中圈出的那样

      【讨论】:

        【解决方案4】:

        类似于 brynn 的回答,只需修改您的 SQL 文件并在最顶部插入以下行:

        use yourdatabasename
        

        yourdatabasename 替换为您尝试导入的数据库。此外,在导入之前,该数据库应该已经创建(尽管是空的)。

        【讨论】:

        • 这是问题的答案,如果您需要使用 Workbench。
        【解决方案5】:

        这是另一个对我有用的选项。我在为导入大型 MySQL .sql 转储而设置的 VM 上使用 MySQL 5.5,其中包含:1)。创建表语句 2)。用于向表中插入大量数据的 insert 语句。 在 MySQL 命令行客户端提示符下键入:

        use yourdatabasename
        source d:\yourpath\yourfilename.sql
        

        有关“源”和其他命令的更多信息,请输入 ?在提示下。

        【讨论】:

          【解决方案6】:

          上面的命令行是正确的。我发现从旧版本的 MySQL 导入 .sql 文件时我必须这样做。我还发现我必须编辑 .sql 文件(文件顶部)并将数据库名称设置为与您在导入之前创建的空白数据库相同。

          【讨论】:

            猜你喜欢
            • 2013-06-28
            • 2012-10-10
            • 1970-01-01
            • 2011-09-17
            • 2015-04-07
            • 2017-09-07
            • 2016-09-15
            • 1970-01-01
            • 2018-12-05
            相关资源
            最近更新 更多