7

场景:在本地构建一个用于开发的 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 --comments < "/home/james/Downloads/Futology.sql" ERROR 1046 (3D000) at line 22: No database selected

操作失败,退出代码 1 08:07:43 /home/james/Downloads/Futology.sql 的导入已完成,出现 1 个错误

4

6 回答 6

43

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

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

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

这令人困惑,因为 MySQL 通常似乎使用术语数据库,但 Workbench 使用模式。对于大多数目的,它们的含义相同。MySQL 'create schema' 和 'create database' - 有什么区别吗

于 2012-11-11T02:49:28.303 回答
15

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

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

于 2011-04-26T08:01:11.660 回答
11

只需选择您的目标架构

只需选择您的目标架构

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

于 2016-06-24T17:06:41.460 回答
7

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

use yourdatabasename

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

于 2012-10-02T17:52:00.473 回答
4

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

use yourdatabasename
source d:\yourpath\yourfilename.sql

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

于 2012-03-30T13:07:51.330 回答
2

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

于 2011-08-09T14:22:47.203 回答