使用 MySQL WorkBench 导入...错误 ERROR 1046 (3D000)
Posted
技术标签:
【中文标题】使用 MySQL WorkBench 导入...错误 ERROR 1046 (3D000)【英文标题】:Importing using MySQL WorkBench... error 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 个错误
【问题讨论】:
【参考方案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 文件(文件顶部)并将数据库名称设置为与您在导入之前创建的空白数据库相同。
【讨论】:
以上是关于使用 MySQL WorkBench 导入...错误 ERROR 1046 (3D000)的主要内容,如果未能解决你的问题,请参考以下文章
为啥 MySQL Workbench 表数据导入向导会导入 0 条记录?
在 MySQL Workbench 中,使用“表数据导入向导”导入 CSV 会创建空表
使用 MySQL WorkBench 导入...错误 ERROR 1046 (3D000)