场景:在本地构建RoR环境以进行开发。生产在EngineYard / GitHub上。现在一切正常,但DB没有导入。
我有一个.sql文件,我从我的prod EY网站上获取。现在我需要在本地将它导入我的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)第22行:未选择数据库
操作失败,exitcode 1 08:07:43导入 /home/james/Downloads/Futology.sql已完成1个错误
答案 0 :(得分:38)
Workbench不知道您要使用的数据库(架构)。
在工作台中,当使用数据导入/恢复时,在您选择要导入的文件的下方,它会询问“默认架构导入到”
只需从标题为“默认目标架构”的下拉列表中选择要使用的数据库(架构)。如果您还没有数据库(架构),可以使用“新建”按钮创建它。
这很令人困惑,因为MySQL通常似乎使用术语数据库,但Workbench使用模式。对于大多数目的,它们意味着同样的事情MySQL 'create schema' and 'create database' - Is there any difference
答案 1 :(得分:14)
没有使用Workbench太多但是从命令行很容易看到this(在phpMyAdmin指令下面)
你所追求的命令是:
mysql -u #username# -p #database# < #dump_file#
答案 2 :(得分:9)
只需选择目标架构
即可
当我在上面的图片中盘旋
答案 3 :(得分:7)
与brynn的答案类似,只需修改您的SQL文件并在最顶部插入以下行:
use yourdatabasename
将yourdatabasename
替换为您要导入的数据库。此外,在导入数据库之前,应该已经创建了该数据库(尽管是空的)。
答案 4 :(得分:4)
这是另一个适合我的选择。我在我设置的VM上使用MySQL 5.5,用于导入包含以下内容的大型MySQL .sql转储:1)。一个create table语句2)。插入用于将大量数据插入表中的语句。 在MySQL命令行客户端提示符下键入:
use yourdatabasename
source d:\yourpath\yourfilename.sql
有关'source'和其他命令的更多信息,请输入?在提示。
答案 5 :(得分:1)
上面的命令行是正确的。我发现从旧版本的MySQL导入.sql文件时我必须这样做。我还发现我必须编辑.sql文件(文件顶部)并将数据库名称设置为与您在导入之前创建的空白数据库相同。